modulepackage
0.0.0-20190611155906-901d90724c79
Repository: https://github.com/gregjones/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
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.
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
ErrNoDateHeader indicates that the HTTP headers contained no Date header.
# 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.