Cachemere has the advantage of automatically updating the cache in memory when files change on the file system. Another huge advantage is that you can specify optional preprocessors to apply custom transformations to various files and will compress/gzip the results by default.
Basically, when a file which is cached changes on disk, its content will be passed through your preprocessor function and gzipped and then that gzipped content will be cached - Cachemere will also keep an uncompressed copy of files in cache to cater for clients which do not support GZIP. So when a client which supports GZIP (which is almost all of them) requests a file which is in cache, Cachemere will serve back the fully prepared, gzipped content (it won't have to gzip every time thus sparing the CPU). Cachemere automatically sets ETag headers to facilitate client cache. So effectively Cachemere will only serve a file's content to any given client once (unless that client/browser clears their cache). ETags are based on the actual preprocessed/gzipped content (not on timestamps or inode ids) so it scales well across multiple servers. Finally, Cachemere sits really well with any existing code that you may already have - It doesn't introduce its own routing logic or take over control of your http res object - You have full control at all stages of the request-response cycle. On Friday, November 22, 2013 11:14:43 AM UTC+11, Mikeal Rogers wrote: > > You might want to have a look at jaws > > https://github.com/mikeal/jaws<https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fmikeal%2Fjaws&sa=D&sntz=1&usg=AFQjCNFV4458hYSINVyS2468wdgEOOIHVA> > > You also probably want to start storing this stuff in isaacs' LRU. > > https://github.com/isaacs/node-lru-cache<https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fisaacs%2Fnode-lru-cache&sa=D&sntz=1&usg=AFQjCNHRRfN79JK5WL5TYdP8_orAYh5gEQ> > > -Mikeal > > On Nov 21, 2013, at 3:06PM, Jon <[email protected] <javascript:>> wrote: > > This is a tool I wrote which helps create efficient Node.js file servers > and it also offers an auto-updating cache layer. > It caches preprocessed, gzipped file contents and also handles ETags by > default for client-side caching. > It automatically updates the preprocessed, gzipped content whenever a > cached file changes on the file system so you don't have to manually > invalidate the cache or wait for a timeout. > > Looking for feedback and contributors. > > https://github.com/topcloud/cachemere<https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Ftopcloud%2Fcachemere&sa=D&sntz=1&usg=AFQjCNGlNVl1cvga2HXdQYRyEP8Z-515Ag> > > -- > -- > Job Board: > http://jobs.nodejs.org/<http://www.google.com/url?q=http%3A%2F%2Fjobs.nodejs.org%2F&sa=D&sntz=1&usg=AFQjCNE-4iYDXAHW4qPQS88cJKbDd48aVA> > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines<https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fjoyent%2Fnode%2Fwiki%2FMailing-List-Posting-Guidelines&sa=D&sntz=1&usg=AFQjCNFxY8BMLEzAhSA1x_4vv-P8c4pTOQ> > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] <javascript:> > To unsubscribe from this group, send email to > [email protected] <javascript:> > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
