9 个版本
0.0.9 | 2024 年 6 月 26 日 |
---|---|
0.0.8 | 2024 年 5 月 6 日 |
0.0.7 | 2024 年 4 月 29 日 |
0.0.4 | 2024 年 3 月 28 日 |
0.0.2 | 2023 年 12 月 18 日 |
#422 在 异步
每月 47 次下载
用于 dwn-server
145KB
4K SLoC
dwn
Rust 实现的 去中心化 Web 节点。
使用方法
use std::sync::Arc;
use dwn::{actor::Actor, message::Data, store::SurrealStore, DWN};
use surrealdb::{Surreal, engine::local::Mem};
#[tokio::main]
async fn main() {
// Create a DWN, using in-memory SurrealDB for storage.
let db = Surreal::new::<Mem>(()).await.unwrap();
let store = SurrealStore::new(db).await.unwrap();
let dwn = Arc::new(DWN::from(store));
// Create an actor to send messages.
// Here we generate a new `did:key` for the actor's identity,
// but you could use any DID method.
let actor = Actor::new_did_key(dwn).unwrap();
// Create a new record.
let data = "Hello, world!".bytes().collect::<Vec<_>>();
let create = actor
.create_record()
.data(data.clone())
.data_format("text/plain".to_string())
.process()
.await
.unwrap();
assert_eq!(create.reply.status.code, 200);
// Read the record.
let read = actor
.read_record(create.record_id)
.process()
.await
.unwrap();
assert_eq!(read.status.code, 200);
assert_eq!(read.record.data, Some(Data::new_base64(&data)));
}
依赖项
~86MB
~1.5M SLoC