| Crates.io | cadi-registry |
| lib.rs | cadi-registry |
| version | 2.0.0 |
| created_at | 2026-01-11 23:22:22.024734+00 |
| updated_at | 2026-01-12 06:25:21.188919+00 |
| description | CADI registry client for chunk storage, retrieval and distribution |
| homepage | https://conflictingtheories.github.io/cadi |
| repository | https://github.com/ConflictingTheories/cadi |
| max_upload_size | |
| id | 2036703 |
| size | 82,556 |
CADI registry client for chunk storage, retrieval and distribution.
CADI is a universal build and distribution system where all artifacts are content-addressed chunks. The registry system enables:
Add this to your Cargo.toml:
[dependencies]
cadi-registry = "1.0"
use cadi_registry::RegistryClient;
use cadi_core::Chunk;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = RegistryClient::new(
"https://registry.example.com",
"my-auth-token"
);
let chunk = Chunk {
id: "chunk-1".to_string(),
content: b"fn hello() {}".to_vec(),
..Default::default()
};
// Publish chunk
client.publish_chunk(&chunk).await?;
// Retrieve chunk
let retrieved = client.get_chunk("chunk-1").await?;
// List chunks
let chunks = client.list_chunks("my-namespace").await?;
Ok(())
}
client.publish_chunk(&chunk).await?;
client.publish_batch(&chunks).await?;
let chunk = client.get_chunk("chunk-id").await?;
let chunks = client.get_chunks(&ids).await?;
let results = client.search("keyword").await?;
let namespace_chunks = client.list_chunks("namespace").await?;
export CADI_REGISTRY_URL="https://registry.example.com"
export CADI_AUTH_TOKEN="your-token-here"
let config = RegistryConfig {
registry_url: "https://registry.example.com".to_string(),
auth_token: Some("token".to_string()),
namespace: Some("myorg".to_string()),
timeout: Duration::from_secs(30),
..Default::default()
};
let client = RegistryClient::from_config(config);
use cadi_registry::error::{Error, Result};
match client.publish_chunk(&chunk).await {
Ok(_) => println!("Published"),
Err(Error::Http(e)) => eprintln!("HTTP error: {}", e),
Err(Error::Authentication) => eprintln!("Auth failed"),
Err(e) => eprintln!("Error: {}", e),
}
Full API documentation at docs.rs/cadi-registry
MIT License