ipld-block-builder

Getting started

```rust use ipfsembed::{Config, Store}; use ipldblock_builder::{BlockBuilder, Codec}; use libipld::DagCbor;

[derive(Clone, DagCbor, Debug, Eq, PartialEq)]

struct Identity { id: u64, name: String, age: u8, }

[async_std::main]

async fn main() -> Result<(), Box> { let config = Config::from_path("/tmp/db")?; let store = Store::new(config)?; let codec = Codec::new(); let builder = BlockBuilder::new(store, codec);

let identity = Identity {
    id: 0,
    name: "David Craven".into(),
    age: 26,
};
let cid = builder.insert(&identity).await?;
let identity2 = builder.get(&cid).await?;
builder.unpin(cid).await?;
assert_eq!(identity, identity2);
println!("identity cid is {}", cid);
Ok(())

} ```

Encrypted private store

rust use ipld_block_builder::{BlockBuilder, Key, StrobeCodec}; let key = Key::from(b"private encryption key".to_vec()); let codec = StrobeCodec::new(key); let builder = BlockBuilder::new_private(store, codec);

Caching

rust let codec = Codec::new(); let mut cache: Cache<_, _, String> = Cache::new(store, codec, size); let cid = cache.insert("hello world".into()).await?; cache.get(&cid).await?;

License

Dual licensed under MIT or Apache License (Version 2.0).