Giter Site home page Giter Site logo

ndragun92 / file-sys-cache Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 0.0 1.87 MB

Efficient system files-based caching for Node.js applications.

Home Page: https://ndragun92.github.io/file-sys-cache/

License: MIT License

JavaScript 3.85% TypeScript 96.15%
cache caching file-cache filesystem node npm optimization package performance storage system

file-sys-cache's Introduction

File-Sys-Cache

File-Sys-Cache is an npm package that provides a simple and efficient system files-based caching solution for Node.js applications.

Features

  • Set Cache: Store data in the cache with options to specify file name prefix, file name, payload, and time-to-live (TTL).
  • Get Cached Data: Retrieve cached data by providing the corresponding file name or prefix.
  • Invalidate Cached Data: Automatically invalidate cached data for items with expired TTLs.
  • Flush Cache by Regex: Flush cache entries that match a given regular expression.
  • Flush Whole Cache: Clear the entire cache, removing all stored entries.
  • Monitoring: Monitor cache usage and performance statistics, including invalidated files count, logs over time, size over time, and request count.
  • TypeScript: Full TypeScript support

Installation

Install File-Sys-Cache via npm:

npm install file-sys-cache

Usage

import { FileSysCache } from 'file-sys-cache'

// Create a new cache instance
const cache = new FileSysCache({
    basePath: './.file-sys-cache', // Directory where cache will be stored
    defaultTTL: 60, // 60 seconds expiration time
    hash: 'sha256', // Hashing algorithm
    debug: false, // Enabled debug mode
    autoInvalidate: false, // Auto invalidate files from file-system and delete expired files automatically without need of triggering .invalidate()
    enableMonitoring: false // Enabled monitoring which exposes cache.monitoring.get(), cache.monitoring.reset()
});

// Set cache with a file name prefix, file name, payload, and TTL
await cache.set({ fileName: 'myFileName', key: 'myUniqueKey', payload: myPayload, ttl: 3600 })

// Retrieve cached data by file name prefix and file name
const data = await cache.get({ fileName: 'myFileName', key: 'myUniqueKey' });

// Retrieve current list of files inside cache
const data = await cache.files();

// Flush cache by passing regex
await cache.flushByRegex('myString', 'myString2'); // Flush cache by regex match (single or multiple same matches)

// Flush whole cache
await cache.flushAll();

For more detailed usage examples and API documentation, please refer to the Documentation section.

Contributing

Contributions are welcome! Please see the Contributing Guidelines for more information.

License

This project is licensed under the MIT License - see the LICENSE file for details.

file-sys-cache's People

Contributors

ndragun92 avatar

Stargazers

haojixing avatar  avatar Raphael Syed avatar Eduard Chirila avatar Mihail Marcu avatar Marko Bolliger avatar

Watchers

 avatar  avatar

file-sys-cache's Issues

Insufficient documentation

Hey there! Could you help me out on using your library?

The documentation doesn't specifies what type is payload when using:

cache.set({fileName, key, payload})

is it a stream?

how does it work and what is stored?
how can i store a binary data stream?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.