1 个不稳定版本

0.4.2-alpha.12024 年 4 月 30 日

#1325异步

Download history 526/week @ 2024-04-29 882/week @ 2024-05-06 754/week @ 2024-05-13 719/week @ 2024-05-20 172/week @ 2024-05-27 128/week @ 2024-06-03 158/week @ 2024-06-10 369/week @ 2024-06-17 202/week @ 2024-06-24 206/week @ 2024-07-01 244/week @ 2024-07-08 368/week @ 2024-07-15 51/week @ 2024-07-22 82/week @ 2024-07-29 10/week @ 2024-08-05

524 每月下载量
用于 gnostr-bins

MIT/Apache

145KB
3K SLoC

Hypercore 协议

crates.io version build status downloads docs.rs docs

Hypercore 协议是一个流式、基于消息的协议。这是从 原始的 JavaScript 版本 中移植的线协议实现。这个 crate 旨在 Hypercore LTS 版本 10。

这个 crate 为 hypercore-protocol 提供了一个低级流式 API,并暴露了一个接口,使得在实际协议逻辑之上实现它变得容易。

这个 crate 使用 async-stdtokio 进行异步 IO,使用 snow 进行 Noise 握手,以及使用 RustCrypto 的 crypto_secretsteram 进行加密。

功能

  • 完成 Noise 握手
  • 建立 libsodium 的 crypto_secretstream
  • 使用密钥打开通道
  • 如果您的端知道密钥,则接受远程端打开的通道
  • 创建和验证能力散列
  • 发送和接收所有协议消息
  • 支持 async-stdtokio 运行时
  • 支持 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