modulepackage
0.0.0-20200510095935-4ce2f93d6e39
Repository: https://github.com/mchtech/httpcache.git
Documentation: pkg.go.dev
# README
httpcache
Package httpcache provides a http.RoundTripper implementation that works as a mostly RFC 7234 compliant cache for http responses.
It is only suitable for use as a 'private' cache (i.e. for a web-browser or an API-client and not for a shared proxy).
This project isn't actively maintained; it works for what I, and seemingly others, want to do with it, and I consider it "done". That said, if you find any issues, please open a Pull Request and I will try to review it. Any changes now that change the public API won't be considered.
Cache Backends
- The built-in 'memory' cache stores responses in an in-memory map.
github.com/gregjones/httpcache/diskcache
provides a filesystem-backed cache using the diskv library.github.com/gregjones/httpcache/memcache
provides memcache implementations, for both App Engine and 'normal' memcache servers.sourcegraph.com/sourcegraph/s3cache
uses Amazon S3 for storage.github.com/gregjones/httpcache/leveldbcache
provides a filesystem-backed cache using leveldb.github.com/die-net/lrucache
provides an in-memory cache that will evict least-recently used entries.github.com/die-net/lrucache/twotier
allows caches to be combined, for example to use lrucache above with a persistent disk-cache.github.com/birkelund/boltdbcache
provides a BoltDB implementation (based on the bbolt fork).
If you implement any other backend and wish it to be linked here, please send a PR editing this file.
License
# Packages
No description provided by the author
Package diskcache provides an implementation of httpcache.Cache that uses the diskv package to supplement an in-memory map with persistent storage
.
Package leveldbcache provides an implementation of httpcache.Cache that uses github.com/syndtr/goleveldb/leveldb.
Package memcache provides an implementation of httpcache.Cache that uses gomemcache to store cached responses.
Package redis provides a redis interface for http caching.
No description provided by the author
# Functions
CachedResponse returns the cached http.Response for req if present, and nil otherwise.
CacheKey returns the cache key for req.
Date parses and returns the value of the Date header.
NewMemoryCache returns a new Cache that will store items in an in-memory map.
NewMemoryCacheTransport returns a new Transport using the in-memory cache implementation.
NewTransport returns a new Transport with the provided Cache implementation and MarkCachedResponses set to true.
# Constants
XFromCache is the header added to responses that are returned from the cache.
# Variables
CacheRangeContextKey -.
ErrNoDateHeader indicates that the HTTP headers contained no Date header.
FreshnessToString map.
NotModifiedDelHeaders -.
ProxyCachedToString map.
ProxyFromCacheToString map.
ProxyStaleClientToString map.
ProxyWriteCacheToString map.
# Structs
MemoryCache is an implemtation of Cache that stores responses in an in-memory map.
Transport is an implementation of http.RoundTripper that will return values from a cache where possible (avoiding a network request) and will additionally add validators (etag/if-modified-since) to repeated requests allowing servers to return 304 / Not Modified.
# Interfaces
A Cache interface is used by the Transport to store and retrieve responses.