Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gnostr-org/gnostr-command
gnostr: command template
https://github.com/gnostr-org/gnostr-command
bqs byzantine byzantine-consensus byzantine-fault-tolerance git gnostr nodejs nodejs-server nostr rust rust-server
Last synced: about 2 months ago
JSON representation
gnostr: command template
- Host: GitHub
- URL: https://github.com/gnostr-org/gnostr-command
- Owner: gnostr-org
- License: other
- Created: 2023-12-07T17:04:53.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-23T04:16:47.000Z (11 months ago)
- Last Synced: 2024-04-23T23:14:42.530Z (9 months ago)
- Topics: bqs, byzantine, byzantine-consensus, byzantine-fault-tolerance, git, gnostr, nodejs, nodejs-server, nostr, rust, rust-server
- Language: Rust
- Homepage: https://command.gnostr.org
- Size: 51.6 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
## gnostr-command
### gnostr: a git+nostr workflow utility
I. [BYZANTINE QUORUM SYSTEMS](./BQS97/BQS97.pdf)
---
### make
```
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
[![crates.io version][1]][2] [![build status][3]][4]
[![downloads][5]][6] [![docs.rs docs][7]][8]Hypercore protocol is a streaming, message based protocol. This is a Rust port of
the wire protocol implementation in
[the original Javascript version](https://github.com/holepunchto/hypercore). 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](https://async.rs) or [tokio](https://tokio.rs/)
for async IO, [snow](https://github.com/mcginty/snow) for the Noise handshake and
[RustCrypto's crypto_secretsteram](https://github.com/RustCrypto/nacl-compat/tree/master/crypto_secretstream)
for encryption.## Features
- [x] Complete the Noise handshake
- [x] Establish libsodium's `crypto_secretstream`.
- [x] Open channels with a key
- [x] Accept channels opened by the remote end if your end knows the key
- [x] Create and verify capability hashes
- [x] Send and receive all protocol messages
- [x] Support `async-std` or `tokio` runtimes
- [x] Support WASM
- [x] Test Javascript interoperability
- [ ] Support the new [manifest](https://github.com/holepunchto/hypercore/blob/main/lib/manifest.js) in the wire protocol to remain compatible with upcoming v11
- [ ] Finalize documentation and release v1.0.0## Installation
```bash
cargo add hypercore-protocol
```## Examples
These examples sync data between Rust and NodeJS hypercore-protocol implementations. To prepare, run
```bash
cd examples-nodejs && npm install && cd ..
```### [replication.rs](examples/replication.rs)
Runs the `replication.rs` example by replicating a hypercore between Rust and Node hypercores and printing the result.
* Node Server / Rust Client
```bash
node examples-nodejs/run.js nodeServer
```* Rust Server / Node Client
```bash
node examples-nodejs/run.js rustServer
```* Rust Server / Rust Client
```bash
node examples-nodejs/run.js rust
```* Node Server / Node Client
```bash
node examples-nodejs/run.js node
```## Development
To test interoperability with Javascript, enable the `js_interop_tests` feature:
```bash
cargo test --features js_interop_tests
```Run benches with:
```bash
cargo bench
```## Contributing
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](https://chat.hypercore-protocol.org/).Want to help with Hypercore Protocol? Check out our
["Contributing" guide](https://github.com/datrs/hypercore-protocol-rs/blob/master/.github/CONTRIBUTING.md)
and take a look at the open [issues](https://github.com/datrs/hypercore-protocol-rs/issues).## License
[MIT](./LICENSE-MIT) OR [Apache-2.0](./LICENSE-APACHE)
[1]: https://img.shields.io/crates/v/hypercore-protocol.svg?style=flat-square
[2]: https://crates.io/crates/hypercore-protocol
[3]: https://github.com/datrs/hypercore-protocol-rs/actions/workflows/ci.yml/badge.svg
[4]: https://github.com/datrs/hypercore-protocol-rs/actions
[5]: https://img.shields.io/crates/d/hypercore-protocol.svg?style=flat-square
[6]: https://crates.io/crates/hypercore-protocol
[7]: https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square
[8]: https://docs.rs/hypercore-protocol