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.
What Casita does
Section titled “What Casita does”| 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.
Where to start
Section titled “Where to start”- 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.