Crate rstr[−][src]
Expand description
rstr
is a library for managing a content-addressable blob store.
The BlobStore
struct manages the interaction with the blob store.
An entry in the blob store is represented by an instance of the struct BlobRef
.
Examples
Add files or directories to the blob store:
use rstr::{BlobStore,BlobRef}; use std::path::{Path, PathBuf}; let blob_store = BlobStore::new("../tests/test_data_store").unwrap(); let n_threads: u8 = 8; let (blob_refs_with_paths, _): (Vec<(PathBuf, BlobRef)>, _) = blob_store.add_files( &[ // Can add files Path::new("../tests/test_file.txt"), // or directories Path::new("tests/"), ], n_threads, ); let blob_refs: Vec<BlobRef> = blob_refs_with_paths.into_iter().map(|(_, b)| b).collect();
Retrieve a blob from the blob store
use rstr::{BlobStore, BlobRef}; let blob_store = BlobStore::new("../tests/test_data_store").unwrap(); // Retrieve a blob from the blob store let reference = "f29bc64a9d3732b4b9035125fdb3285f5b6455778edca72414671e0ca3b2e0de"; let blob_ref = BlobRef::new(reference).unwrap(); assert!(blob_store.exists(&blob_ref)); // Get the blob's content let content = blob_store.get(&blob_ref).unwrap(); // Get the blob's metadata let metadata = blob_store.metadata(&blob_ref).unwrap(); assert_eq!(metadata.filename, "test_file.txt"); assert_eq!(metadata.mime_type, "text/plain");
Structs
Struct representing the metadata associated to a blob
Struct representing a reference to an entry in the blob store
Struct for interacting with the blob store
Enums
Error raised by the blob store
Traits
The Digest
trait specifies an interface common for digest functions.