Skip to content

DeterminateSystems/attic

This branch is 170 commits behind zhaofengli/attic:main.

Folders and files

NameName
Last commit message
Last commit date
Jan 1, 2023
Dec 18, 2023
Dec 18, 2023
Jan 30, 2023
Jan 14, 2024
Jan 1, 2024
Feb 8, 2024
Jan 1, 2024
May 28, 2023
Jan 1, 2023
Jan 1, 2023
Jan 30, 2023
Jan 1, 2023
Dec 18, 2023
Dec 18, 2023
Jan 1, 2023
Jan 23, 2023
Mar 22, 2023
Dec 19, 2023
Jan 1, 2023
Jan 1, 2023
Dec 19, 2023
Jan 2, 2024
Jan 6, 2023
Dec 19, 2023
Jan 1, 2023

Repository files navigation

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 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.

About

Multi-tenant Nix Binary Cache

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 90.5%
  • Nix 7.6%
  • C++ 1.5%
  • Other 0.4%