Streaming Cache
Speed up your services.
Cache, queue and distribute streams immediately. Streams can be replayed immediately, even if the source is not finished.
Uses a fixed size LRU-cache in the background.
Usefull for caching (slow) streaming connections, such as S3 requests or complex database queries.
If there are for example 3 requests for a certain file in close succession, then we can pipe the result for the first request into the cache. The 2 other requests will receive a stream which will start even before the first one is finished.
Performance
Serving from this cache is extremely fast. On my local machine I get 2.5GB per second for a single process on localhost using AB. (4th gen i7).
Installation
npm i streaming-cache --save
Quick example
var Cache = ;var cache = ;var fs = ; var inputStream = fs;var outputStream = fs; inputStream; ;
Options
For a list of options see: https://www.npmjs.com/package/lru-cache
API
set(key)
returns a Duplex stream
fileStream.pipe(cache.set('key')).pipe(res);
get(key) => ReadableStream
var cached = cache;ifcached cached;
setData(key, data) => WriteableStream
A set data synchronously to stream at a later moment
getData
Get data with a callback.
cache);
setMetadata(key, data)
Set metadata for a stream to be used later.
getMetadata(key, data)
Get metadata
exists(key)
returns true or false if a key exists.