77 releases (30 breaking)
Uses new Rust 2024
| new 0.31.1 | May 6, 2026 |
|---|---|
| 0.30.1 | Apr 29, 2026 |
| 0.27.4 | Mar 19, 2026 |
| 0.24.0 | Dec 30, 2025 |
| 0.5.0 | Dec 20, 2023 |
#167 in Web programming
Used in 4 crates
710KB
17K
SLoC
quilt-rs
Rust library for accessing Quilt data packages.
Quilt provides Git-like version control semantics for data files through content-addressed storage with immutable objects and distributed collaboration via remote storage backends.
Quick Start
For all operations, instantiate LocalDomain and then call some of its methods.
use std::path::PathBuf;
use quilt_rs::LocalDomain;
use quilt_uri::{S3PackageUri, ManifestUri};
# async fn example() -> Result<(), Box<dyn std::error::Error>> {
// Create a local domain for package management
let path = PathBuf::from("/foo/bar");
let local_domain = LocalDomain::new(path);
// Create a manifest URI from a package URI
let package_uri = S3PackageUri::try_from("quilt+s3://bucket#package=namespace@hash")?;
let manifest_uri = ManifestUri::try_from(package_uri)?;
// Install the package
let installed_package = local_domain.install_package(&manifest_uri).await?;
# Ok(())
# }
Workflow
- Browse — discover remote packages (
flow::browse) - Install — register package tracking (
flow::install_package) - Install Paths — download content to working directory (
flow::install_paths) - Status — detect modifications (
flow::status) - Commit — create a local package version (
flow::commit_package) - Push — upload changes to remote (
flow::push_package)
Hash Algorithms
Supports multiple algorithms via checksum::ObjectHash:
- SHA256 — general-purpose cryptographic hash
- CRC64 — fast checksum for large files
- SHA256-Chunked — parallel hashing for very large files
Further Reading
- Architecture — detailed design, data structures, and workflow internals
- API docs — full API reference
- quiltdata.com — product documentation
Dependencies
~62MB
~1M SLoC