1 个不稳定版本
0.4.2-alpha.1 | 2024 年 4 月 30 日 |
---|
#1325 在 异步
524 每月下载量
用于 gnostr-bins
145KB
3K SLoC
Hypercore 协议
Hypercore 协议是一个流式、基于消息的协议。这是从 原始的 JavaScript 版本 中移植的线协议实现。这个 crate 旨在 Hypercore LTS 版本 10。
这个 crate 为 hypercore-protocol 提供了一个低级流式 API,并暴露了一个接口,使得在实际协议逻辑之上实现它变得容易。
这个 crate 使用 async-std 或 tokio 进行异步 IO,使用 snow 进行 Noise 握手,以及使用 RustCrypto 的 crypto_secretsteram 进行加密。
功能
- 完成 Noise 握手
- 建立 libsodium 的
crypto_secretstream
。 - 使用密钥打开通道
- 如果您的端知道密钥,则接受远程端打开的通道
- 创建和验证能力散列
- 发送和接收所有协议消息
- 支持
async-std
或tokio
运行时 - 支持 WASM
- 测试 JavaScript 互操作性
- 支持线协议中的新 manifest 以保持与即将推出的 v11 兼容
- 完成文档并发布 v1.0.0
安装
cargo add hypercore-protocol
示例
这些示例在 Rust 和 NodeJS hypercore-protocol 实现之间同步数据。要准备,运行
cd examples-nodejs && npm install && cd ..
replication.rs
通过在 Rust 和 Node hypercore 之间复制 hypercore 并打印结果来运行 replication.rs
示例。
- Node 服务器 / Rust 客户端
node examples-nodejs/run.js nodeServer
- rust服务器 / Node客户端
node examples-nodejs/run.js rustServer
- rust服务器 / rust客户端
node examples-nodejs/run.js rust
- Node服务器 / Node客户端
node examples-nodejs/run.js node
开发
为了测试与JavaScript的互操作性,启用js_interop_tests
功能
cargo test --features js_interop_tests
使用以下命令运行基准测试
cargo bench
贡献
我们正在积极寻找datrust开发的贡献者!如果您感兴趣,最简单的方法是在Hypercore Protocol Discord的#rust
频道中说一声。
想帮助Hypercore Protocol吗?查看我们的"贡献"指南,并查看开放的问题。
许可
MIT OR Apache-2.0
依赖项
~6–20MB
~280K SLoC