Hasty Briefsbeta

Bilingual

Introducing Casita: A content-addressed store for source code and build artifact

11 hours ago
  • Casita is the first standalone layer from rewriting Nix in Rust: a content-addressed object store for source code and build artifacts, available as a Rust library and CLI for Linux, macOS, and Windows.
  • It addresses the challenge of managing many source versions and build artifacts in agentic development, avoiding both expensive duplication and wasteful deletion.
  • Cargo integration via an ArtifactStorage interface can import and restore registry archives, Git dependencies, and workspace outputs through different backends; the Casita backend is currently experimental.
  • The storage model generalizes Git: immutable blobs are addressed by BLAKE3 hash, and object records for files, directories, and commits form a graph above the blobs.
  • Optional Bao outboard hashes allow range verification without reading entire blobs, while full sequential reads still verify the complete hash.
  • Roots name saved object graphs and can be permanent or evictable, enabling flexible retention and garbage collection; unchanged files share blobs across versions.
  • Importers support filesystem directories, tar archives, NAR archives with canonical SHA-256 verification, and native Git objects while preserving original IDs.
  • Portable .casitar archives contain complete saved graphs, can be transferred via file, pipe, or release artifact, and are fully verified on import.
  • Synchronization reuses existing content, verifies incoming objects, and only updates destination names after the complete saved version arrives.
  • Garbage collection reclaims unreachable data, including automatic collection on disk pressure that can release least-recently-used evictable roots while preserving permanent roots.
  • Experimental integrations include a Gix adapter for native Git object storage, CasitaFS for read-only mounts, and an S3 profile using Chroma's wal3 write-ahead log for shared multi-writer repositories.
  • Casita is pre-release and not yet tagged v0.1.0; remaining work includes improving performance, broadening benchmarks, and completing real-world integrations.