6个版本
0.4.1 | 2020年7月17日 |
---|---|
0.4.0 | 2020年7月14日 |
0.3.0 | 2020年5月22日 |
0.1.2 | 2020年5月15日 |
#59 in #ipld
每月40次下载
在 6 个crate中使用 (直接使用2个)
29KB
664 代码行
ipld-block-builder
入门指南
use ipfs_embed::{Config, Store};
use ipld_block_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<dyn std::error::Error>> {
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(())
}
加密私有存储
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);
缓存
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?;
许可
双重许可,受MIT或Apache许可证(版本2.0)保护。
依赖项
~7–18MB
~225K SLoC