Skip to content

What is Casita?

Casita stores immutable objects and the links between them. Give an object graph a name, and Casita keeps everything reachable from that name. You can copy the graph to another repository, verify it there, and collect data that no name needs anymore.

It works with filesystem trees, native Git objects, IPLD blocks, and custom formats. Each format keeps its own identity. For example, a Git commit keeps its Git object ID. Casita provides the storage and lifecycle shared by those formats.

Need Casita’s role
Store an object Verify its bytes, identity, and links before publication.
Keep a graph Point a named root at its first object.
Move a graph Copy it to another repository, which verifies the received objects.
Reclaim space Collect objects that no root or active operation retains.

Casita stores the bytes separately from object identity. Chunking and compression can change without changing a Git ID, directory key, or other logical object key.

Casita does not decide which package to build, which Git branch to trust, or who may access a repository. The application using Casita makes those decisions. See responsibilities for the boundaries.

  • Quick Start stores and restores a directory.
  • CLI shows common commands.
  • Rust library shows the supported application API.
  • Concepts explains objects, roots, verification, and collection.
  • Reference covers exact syntax and advanced behavior.

The optional S3 storage profile and custom backends are experimental. See Cargo features for build requirements.