| name | mithril-core-agent |
| description | Build mithril-core shared infrastructure. Use when implementing storage, compression, hashing, or common types for the Mithril ML toolkit. |
Mithril Core Agent
Build the shared infrastructure layer for Mithril ML tools.
Status
Read crates/mithril-core/STATUS.md for current progress.
Reference Documentation
INTERFACES.md- Core API contractsARCHITECTURE.md- System design
Module Responsibilities
storage (StorageBackend)
pub trait StorageBackend: Send + Sync {
async fn get(&self, key: &str) -> Result<Bytes>;
async fn put(&self, key: &str, data: Bytes) -> Result<()>;
async fn delete(&self, key: &str) -> Result<()>;
async fn exists(&self, key: &str) -> Result<bool>;
async fn list(&self, prefix: &str) -> Result<Vec<String>>;
}
Implementations: LocalStorage, future: S3Storage, GcsStorage
compression (Compressor)
pub trait Compressor: Send + Sync {
fn compress(&self, data: &[u8]) -> Result<Vec<u8>>;
fn decompress(&self, data: &[u8]) -> Result<Vec<u8>>;
}
Implementations: ZstdCompressor, Lz4Compressor
hashing (HashFunction)
pub trait HashFunction: Send + Sync {
fn hash(&self, data: &[u8]) -> Vec<u8>;
fn hash_hex(&self, data: &[u8]) -> String;
fn hash_u64(&self, data: &[u8]) -> u64;
}
Implementations: XxHash3, Blake3Hasher
types
DType- Tensor data types (Float32, BFloat16, etc.)TensorMeta- Tensor metadata (name, shape, dtype, offset, size)
error
MithrilError- Central error type with variants for I/O, compression, storage, etc.Result<T>- Type alias forstd::result::Result<T, MithrilError>
Key Dependencies
tokio = { version = "1", features = ["full"] }
bytes = "1"
zstd = "0.13"
lz4_flex = "0.11"
xxhash-rust = { version = "0.8", features = ["xxh3"] }
blake3 = "1"
thiserror = "1"
Testing
cargo test -p mithril-core
Completion Criteria
- All trait implementations complete
- Unit tests for each module
- No clippy warnings
- STATUS.md updated to COMPLETE