7 个不稳定版本 (3 个破坏性版本)
0.5.0 | 2024 年 7 月 5 日 |
---|---|
0.4.1 | 2023 年 10 月 26 日 |
0.3.1 | 2021 年 8 月 9 日 |
0.3.0 | 2021 年 3 月 10 日 |
0.0.1 | 2020 年 6 月 1 日 |
#206 在 异步
每月 88 次下载
用于 peermerge
145KB
3K SLoC
Hypercore 协议
Hypercore 协议是一个基于消息的流式协议。这是从原始 JavaScript 版本的 线协议实现 翻译的 Rust 版本。本 crate 针对 Hypercore LTS 版本 10。
此 crate 为 hypercore-protocol 提供了一个低级流式 API,并公开了一个接口,可以轻松地在上面实现实际的协议逻辑。
此 crate 使用 async-std 或 tokio 进行异步 I/O,使用 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 hypercores 之间复制 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
使用以下内容运行 benches
cargo bench
贡献
我们正在积极寻找datrust开发的贡献者!如果您感兴趣,最简单的方法是在Hypercore协议Discord上的#rust
频道打招呼。
想帮助Hypercore协议?请查看我们的“贡献”指南并查看开放的问题。
许可证
MIT OR Apache-2.0
依赖项
~6–19MB
~263K SLoC