help help
rustup-install rustup-install
rustup-install-stable rustup-install-stable
rustup-install-nightly rustup-install-nightly
cargo-b cargo-b
cargo-b-release cargo-b-release
cargo-c cargo-c
install install
cargo-i cargo-i
cargo-help cargo-help
cargo-bt cargo-bt
cargo-build-tokio cargo-build-tokio
cargo-bas cargo-bas
cargo-build-async-std cargo-build-async-std
cargo-install cargo install --path .
cargo-br-tokio cargo-br-tokio
cargo-build-release-tokio cargo-build-release-tokio
cargo-br-async-std cargo-br-async-std
cargo-build-release-async-std cargo-build-release-async-std
cargo-check cargo-check
cargo-check-tokio cargo-check-tokio
cargo-check-async-std cargo-check-async-std
cargo-bench cargo-bench
cargo-tt cargo-tt
cargo-test-tokio cargo-test-tokio
cargo-ts cargo-ts
cargo-test-async-std cargo-test-async-std
cargo-jits cargo-jits
cargo-t-jit-tokio cargo-test-jit-tokio
cargo-t-jit-as cargo-test-jit-as
cargo-test-benches cargo-test-benches
cargo-report cargo-report
cargo-doc cargo-doc
node-sdk-run-js-node node-sdk-run-js-node
node-sdk-run-js-rust node-sdk-run-js-rust
dockerx docker-buildx
docker-build ocker build -f Dockerfile -t gnostr-command .
docker-buildx docker buildx build sequence
👀
Hypercore protocol is a streaming, message based protocol. This is a Rust port of the wire protocol implementation in the original Javascript version. This crate targets the Hypercore LTS version 10.
This crate provides a low-level streaming API to hypercore-protocol and exposes an interface that should make it easy to implement actual protocol logic on top.
This crate uses either async-std or tokio for async IO, snow for the Noise handshake and RustCrypto's crypto_secretsteram for encryption.
- Complete the Noise handshake
- Establish libsodium's
crypto_secretstream
. - Open channels with a key
- Accept channels opened by the remote end if your end knows the key
- Create and verify capability hashes
- Send and receive all protocol messages
- Support
async-std
ortokio
runtimes - Support WASM
- Test Javascript interoperability
- Support the new manifest in the wire protocol to remain compatible with upcoming v11
- Finalize documentation and release v1.0.0
cargo add hypercore-protocol
These examples sync data between Rust and NodeJS hypercore-protocol implementations. To prepare, run
cd examples-nodejs && npm install && cd ..
Runs the replication.rs
example by replicating a hypercore between Rust and Node hypercores and printing the result.
- Node Server / Rust Client
node examples-nodejs/run.js nodeServer
- Rust Server / Node Client
node examples-nodejs/run.js rustServer
- Rust Server / Rust Client
node examples-nodejs/run.js rust
- Node Server / Node Client
node examples-nodejs/run.js node
To test interoperability with Javascript, enable the js_interop_tests
feature:
cargo test --features js_interop_tests
Run benches with:
cargo bench
We're actively looking for contributors to the datrust development! If you're interested, the
easiest is to say hi in the #rust
channel on the
Hypercore Protocol Discord.
Want to help with Hypercore Protocol? Check out our "Contributing" guide and take a look at the open issues.
MIT OR Apache-2.0