Skip to content

A implementation of a RFC7234 shared HTTP cache written in Go

License

Notifications You must be signed in to change notification settings

dylandreimerink/sharedhttpcache

Repository files navigation

HTTP caching

GoDoc Travis CI Codecov GoReport

The goal of this project is to make a RFC 7234 compliant shared caching server in Go. Tho the main goal is to have a out-of-the-box working caching server it is also important that the functionality is exported so it can be used as library in bigger projects.

Features

  • Fully RFC7234 compliant (excluding optional features)
  • Flexible configuration
  • Multi layer system
  • Customizable logging

Usage

TODO make command line usage section for the standalone cache server

Examples

For library examples please go the the godoc page

Validation

To validate the cache a testing harness like https://github.com/http-tests/cache-tests can be used.

TODO

  • Adding tests, both unit and integration
  • Store partial responses
  • Combining Partial Content
  • Calculating Heuristic Freshness based on past behavior
  • Add informational headers about cache hit's ect.
  • Add websocket support
  • Add HTTP/2 push support
  • Add optional RFC7239 support
  • http cache-aware server-push link
  • Add Cache-Control extensions (Or at least make a callback so someone can from outside the package)
  • Add metrics (prometheus)
  • Add user triggered cache invalidation
  • Add advanced cache replacement policies to inmemory layer
  • Add disk storage layer
  • Add redis storage layer
  • Add s3 storage layer

About

A implementation of a RFC7234 shared HTTP cache written in Go

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published