GitHunt
PO

pomerium/autocache

Distributed cache with gossip peer membership enrollment.

Build
codecov
Go Report Card
Go Reference
LICENSE
discuss

Autocache

Autocache pairs groupcache with memberlist for distributed peer discovery.

Note: This project is experimental, not intended for production use, and may be archived in the future.

Quick start

See _example/ for usage.

Run

docker-compose -f _example/docker-compose.yaml up --scale autocache=5

Client

for i in `seq 10`; do curl "http://autocache.localhost/get/?key=hunter2"; echo; done

Server

autocache_2  | 2020/01/06 06:10:51 bcryptKey/key:"hunter2"      time:969.8645ms
autocache_2  | 2020/01/06 06:10:51 cacheHandler: group[bcrypt]  key["hunter2"]  time[969.9474ms]
autocache_1  | 2020/01/06 06:10:51 cacheHandler: group[bcrypt]  key["hunter2"]  time[1.3559ms]
autocache_3  | 2020/01/06 06:10:51 cacheHandler: group[bcrypt]  key["hunter2"]  time[1.1236ms]
autocache_4  | 2020/01/06 06:10:51 cacheHandler: group[bcrypt]  key["hunter2"]  time[1.2935ms]
autocache_5  | 2020/01/06 06:10:51 cacheHandler: group[bcrypt]  key["hunter2"]  time[985.2µs]
autocache_6  | 2020/01/06 06:10:51 cacheHandler: group[bcrypt]  key["hunter2"]  time[1.2163ms]
autocache_2  | 2020/01/06 06:10:51 cacheHandler: group[bcrypt]  key["hunter2"]  time[23.3µs]
autocache_1  | 2020/01/06 06:10:51 cacheHandler: group[bcrypt]  key["hunter2"]  time[495.3µs]
autocache_3  | 2020/01/06 06:10:51 cacheHandler: group[bcrypt]  key["hunter2"]  time[497.3µs]
autocache_4  | 2020/01/06 06:10:52 cacheHandler: group[bcrypt]  key["hunter2"]  time[770.5µs]

License

Autocache is licensed under the Apache 2.0 License.

Languages

Go85.9%Makefile12.2%Dockerfile1.9%

Contributors

Apache License 2.0
Created January 4, 2020
Updated November 21, 2025
pomerium/autocache | GitHunt