Casita is a standalone, content-addressed object store for source code and build artifacts designed to decouple storage from build tooling while rewriting Nix in Rust. It addresses the explosion of temporary and duplicated build outputs (for example Cargo target/ directories) by storing immutable blobs and object records that let multiple projects share identical bytes, verify integrity, synchronize between repositories, and reclaim space safely. Distributed as a Rust library and CLI for Linux, macOS, and Windows, it integrates with Cargo via an ArtifactStorage interface so builds and registry imports can be persisted into Casita without changing build semantics. The system targets agentic development workflows that produce many versions and artifacts, where keeping everything is expensive and indiscriminate deletion loses reusable work.
Casita models storage like a generalized Git object database: blobs are BLAKE3-hashed byte ranges (with an optional Bao outboard for range verification) and object records give structure and links (files, directories, commits). Importers read filesystems, tar, NAR, and native Git objects; .casitar archives export/import complete verified graphs; an experimental Git adapter preserves Git IDs. Roots name saved graphs and carry retention policies (permanent or evictable), enabling safe garbage collection: local GC is previewable, nonblocking, and triggered automatically at high disk use (mutation starts at ~80% fullness, trimming until ~75%). CasitaFS exposes saved trees as read-only mounts, and repository sync reuses chunks across stores while verifying completeness before publishing names.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.