Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zhaofengli/attic
Multi-tenant Nix Binary Cache
https://github.com/zhaofengli/attic
Last synced: 1 day ago
JSON representation
Multi-tenant Nix Binary Cache
- Host: GitHub
- URL: https://github.com/zhaofengli/attic
- Owner: zhaofengli
- License: other
- Created: 2022-12-31T23:43:41.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-26T18:49:48.000Z (13 days ago)
- Last Synced: 2024-10-27T21:31:54.390Z (12 days ago)
- Language: Rust
- Homepage: https://docs.attic.rs
- Size: 670 KB
- Stars: 1,010
- Watchers: 14
- Forks: 76
- Open Issues: 91
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-nix - attic - Multi-tenant Nix Binary Cache. (Development / Discovery)
README
# Attic
**Attic** is a self-hostable Nix Binary Cache server backed by an S3-compatible storage provider.
It has support for global deduplication and garbage collection.Attic is an early prototype.
```
⚙️ Pushing 5 paths to "demo" on "local" (566 already cached, 2001 in upstream)...
✅ gnvi1x7r8kl3clzx0d266wi82fgyzidv-steam-run-fhs (29.69 MiB/s)
✅ rw7bx7ak2p02ljm3z4hhpkjlr8rzg6xz-steam-fhs (30.56 MiB/s)
✅ y92f9y7qhkpcvrqhzvf6k40j6iaxddq8-0p36ammvgyr55q9w75845kw4fw1c65ln-source (19.96 MiB/s)
🕒 vscode-1.74.2 ███████████████████████████████████████ 345.66 MiB (41.32 MiB/s)
🕓 zoom-5.12.9.367 ███████████████████████████ 329.36 MiB (39.47 MiB/s)
```## Try it out (15 minutes)
Let's [spin up Attic](https://docs.attic.rs/tutorial.html) in just 15 minutes.
And yes, it works on macOS too!## Goals
- **Multi-Tenancy**: Create a private cache for yourself, and one for friends and co-workers. Tenants are mutually untrusting and cannot pollute the views of other caches.
- **Global Deduplication**: Individual caches (tenants) are simply restricted views of the content-addressed NAR Store and Chunk Store. When paths are uploaded, a mapping is created to grant the local cache access to the global NAR.
- **Managed Signing**: Signing is done on-the-fly by the server when store paths are fetched. The user pushing store paths does not have access to the signing key.
- **Scalabilty**: Attic can be easily replicated. It's designed to be deployed to serverless platforms like fly.io but also works nicely in a single-machine setup.
- **Garbage Collection**: Unused store paths can be garbage-collected in an LRU manner.## Licensing
Attic is available under the **Apache License, Version 2.0**.
See `LICENSE` for details.By contributing to the project, you agree to license your work under the aforementioned license.