There are currently 9 packages available - have a look here.
This is the server side component of CacheCow which works as a DelegatingHandler and looks at the request/response and implements server-side caching according to HTTP spec. This includes inspecting headers, generating ETag and adding headers, responding to conditional GET and PUT, etc. The idea is that you should only have to declare your caching strategy against the handler and it should take care of the rest.
Storing ETag and other important headers such as LatsModified (which I collectively call Cache Metadata) against the resources requires a persistent or in-memory storage. CacheCow.Server by default comes with an In-Memory implementation of the storage. However, these other storages are currently available:
- SQL Server
As such, I believe the client side story of the caching is an important - and somehow neglected - one. So you will find a client-side CachingHandler in CacheCow.Client. Now on the client instead of storing Cache Metadata, we need to store actual responses. There are even more storage implementations available on the client:
- File-based storage
- SQL Server
There is a lot of work there to be done. [If you would like to contribute, please let me know]
Basically the plan is to implement below in the next 4-6 months:
- Turning all storage API to asynchronous. So IEntityTageStore and ICacheStore will turn completely async.
- Implementing total and per-domain storage quota for the CacheCow.Client. Part of this work has already been done but need to be consolidated.
- Implement all storages for both client and server:
So watch this space. If you would like to contribute, please message me in twitter.