{"id":15074537,"url":"https://github.com/althk/ganache","last_synced_at":"2026-01-03T16:05:37.947Z","repository":{"id":41534947,"uuid":"497119363","full_name":"althk/ganache","owner":"althk","description":"Simple, light-weight distributed cache server.","archived":false,"fork":false,"pushed_at":"2023-06-28T18:35:01.000Z","size":423,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T00:11:17.982Z","etag":null,"topics":["distributed-cache","golang","grpc","grpc-go","infrastructure"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/althk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-27T19:46:49.000Z","updated_at":"2022-06-18T18:59:05.000Z","dependencies_parsed_at":"2024-06-21T10:55:28.866Z","dependency_job_id":null,"html_url":"https://github.com/althk/ganache","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althk%2Fganache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althk%2Fganache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althk%2Fganache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althk%2Fganache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/althk","download_url":"https://codeload.github.com/althk/ganache/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243864824,"owners_count":20360360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distributed-cache","golang","grpc","grpc-go","infrastructure"],"created_at":"2024-09-25T03:34:05.843Z","updated_at":"2026-01-03T16:05:37.918Z","avatar_url":"https://github.com/althk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"#\n\n## Ganache\n\nA simple, distributed, in-memory cache service with TLS auth.\n\n\u003e**NOTE: doing this for practicing building production grade systems, THIS IS NOWHERE NEAR READY 😅**\n\n### Benchmarks\n\nThe following benchmark tests (`client/benchmark_test.go`) were run against local CFE server, using `client/client.go` with all Ganache components running on the same host.\n\n```bash\n$ cd client \u0026\u0026 go test -bench=CFE -benchtime=100000x -benchmem\ngoos: linux\ngoarch: amd64\npkg: github.com/althk/ganache/client\ncpu: Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz\nBenchmarkCFEGetString-8   \t  100000\t     82826 ns/op\t    5289 B/op\t      99 allocs/op\nBenchmarkCFEGetInt64-8    \t  100000\t     83450 ns/op\t    5238 B/op\t      98 allocs/op\nPASS\nok  \tgithub.com/althk/ganache/client\t16.660s\n```\n\n### Get Started\n\nTo try this out locally real quick:\n\n#### Pre-reqs\n\n1. Install etcd\n2. Clone the repo.\n   1. `git clone https://github.com/althk/ganache`\n3. Decide how many shards to use for distributed-ness, default is `1`, i.e, no sharding.\n4. If you prefer to test it out using the provided Docker images (preferred), install `docker` and `docker-compose` for your platform.\n\nAfter taking care of the pre-reqs mentioned above:\n\n##### Docker\n\n1. `cd ganache`\n2. `docker-compose up --build`\n   1. This will start all the components within a bridged docker network. The ports are mapped on arbitrary ports on the host. To test all the wiring:\n   `docker-compose run client-benchmark`\n\n##### Makefile\n\n0. `cd ganache`\n1. Open new terminal, start etcd `make run-etcd`\n2. Open new terminal, start Cache Shard Manager (CSM) `make run-csm1`\n3. Open new terminal, start one or more Cache Servers (at least one for each shard) `make run-cacheserver1`\n4. Open new terminal, start Cache Frontend (CFE) `make run-cfe1`\n5. Use the `client` package to make use of the service. See `client/benchmark_test.go` for an example of how to set/get items from cache.\n6. To test all the wiring `make run-client-benchmark`\n\n### Overview\n\n![Ganache Service Architecture Overview Diagram](docs/ganache-overview.drawio.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falthk%2Fganache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falthk%2Fganache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falthk%2Fganache/lists"}