{"id":20863635,"url":"https://github.com/gnostr-org/gnostr-command","last_synced_at":"2025-07-02T03:36:55.194Z","repository":{"id":211808006,"uuid":"728775585","full_name":"gnostr-org/gnostr-command","owner":"gnostr-org","description":"gnostr: command template","archived":false,"fork":false,"pushed_at":"2024-02-23T04:16:47.000Z","size":54129,"stargazers_count":2,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-13T00:43:51.063Z","etag":null,"topics":["bqs","byzantine","byzantine-consensus","byzantine-fault-tolerance","git","gnostr","nodejs","nodejs-server","nostr","rust","rust-server"],"latest_commit_sha":null,"homepage":"https://command.gnostr.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gnostr-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-12-07T17:04:53.000Z","updated_at":"2023-12-10T20:18:08.000Z","dependencies_parsed_at":"2024-01-23T18:53:27.288Z","dependency_job_id":"09edcf8b-2d70-493c-b65f-28ac49be1192","html_url":"https://github.com/gnostr-org/gnostr-command","commit_stats":null,"previous_names":["gnostr-org/gnostr-command"],"tags_count":16,"template":true,"template_full_name":null,"purl":"pkg:github/gnostr-org/gnostr-command","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnostr-org%2Fgnostr-command","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnostr-org%2Fgnostr-command/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnostr-org%2Fgnostr-command/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnostr-org%2Fgnostr-command/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gnostr-org","download_url":"https://codeload.github.com/gnostr-org/gnostr-command/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnostr-org%2Fgnostr-command/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263071244,"owners_count":23409255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bqs","byzantine","byzantine-consensus","byzantine-fault-tolerance","git","gnostr","nodejs","nodejs-server","nostr","rust","rust-server"],"created_at":"2024-11-18T05:30:20.959Z","updated_at":"2025-07-02T03:36:55.166Z","avatar_url":"https://github.com/gnostr-org.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"## gnostr-command\n\n### gnostr: a git+nostr workflow utility\n\nI. [BYZANTINE QUORUM SYSTEMS](./BQS97/BQS97.pdf)\n\n\n---\n\n### make\n\n```\nhelp            \thelp\nrustup-install  \trustup-install\nrustup-install-stable \trustup-install-stable\nrustup-install-nightly \trustup-install-nightly\ncargo-b         \tcargo-b\ncargo-b-release \tcargo-b-release\ncargo-c         \tcargo-c\ninstall         \tinstall\ncargo-i         \tcargo-i\ncargo-help      \tcargo-help\ncargo-bt        \tcargo-bt\ncargo-build-tokio \tcargo-build-tokio\ncargo-bas       \tcargo-bas\ncargo-build-async-std \tcargo-build-async-std\ncargo-install   \tcargo install --path .\ncargo-br-tokio  \tcargo-br-tokio\ncargo-build-release-tokio \tcargo-build-release-tokio\ncargo-br-async-std \tcargo-br-async-std\ncargo-build-release-async-std \tcargo-build-release-async-std\ncargo-check     \tcargo-check\ncargo-check-tokio \tcargo-check-tokio\ncargo-check-async-std \tcargo-check-async-std\ncargo-bench     \tcargo-bench\ncargo-tt        \tcargo-tt\ncargo-test-tokio \tcargo-test-tokio\ncargo-ts        \tcargo-ts\ncargo-test-async-std \tcargo-test-async-std\ncargo-jits      \tcargo-jits\ncargo-t-jit-tokio \tcargo-test-jit-tokio\ncargo-t-jit-as  \tcargo-test-jit-as\ncargo-test-benches \tcargo-test-benches\ncargo-report    \tcargo-report\ncargo-doc       \tcargo-doc\nnode-sdk-run-js-node \tnode-sdk-run-js-node\nnode-sdk-run-js-rust \tnode-sdk-run-js-rust\ndockerx         \tdocker-buildx\ndocker-build    \tocker build -f Dockerfile -t gnostr-command .\ndocker-buildx   \tdocker buildx build sequence\n```\n\u003cdetails\u003e\n\u003csummary\u003e👀\u003c/summary\u003e\n\u003cp\u003e\n\n  ## Hypercore Protocol\n[![crates.io version][1]][2] [![build status][3]][4]\n[![downloads][5]][6] [![docs.rs docs][7]][8]\n\nHypercore protocol is a streaming, message based protocol. This is a Rust port of\nthe wire protocol implementation in\n[the original Javascript version](https://github.com/holepunchto/hypercore). This\ncrate targets the Hypercore LTS version 10.\n\nThis crate provides a low-level streaming API to hypercore-protocol and exposes an\ninterface that should make it easy to implement actual protocol logic on top.\n\nThis crate uses either [async-std](https://async.rs) or [tokio](https://tokio.rs/)\nfor async IO, [snow](https://github.com/mcginty/snow) for the Noise handshake and\n[RustCrypto's crypto_secretsteram](https://github.com/RustCrypto/nacl-compat/tree/master/crypto_secretstream)\nfor encryption.\n\n## Features\n\n- [x] Complete the Noise handshake\n- [x] Establish libsodium's `crypto_secretstream`.\n- [x] Open channels with a key\n- [x] Accept channels opened by the remote end if your end knows the key\n- [x] Create and verify capability hashes\n- [x] Send and receive all protocol messages\n- [x] Support `async-std` or `tokio` runtimes\n- [x] Support WASM\n- [x] Test Javascript interoperability\n- [ ] Support the new [manifest](https://github.com/holepunchto/hypercore/blob/main/lib/manifest.js) in the wire protocol to remain compatible with upcoming v11\n- [ ] Finalize documentation and release v1.0.0\n\n## Installation\n\n```bash\ncargo add hypercore-protocol\n```\n\n## Examples\n\nThese examples sync data between Rust and NodeJS hypercore-protocol implementations. To prepare, run\n```bash\ncd examples-nodejs \u0026\u0026 npm install \u0026\u0026 cd ..\n```\n\n### [replication.rs](examples/replication.rs)\n\nRuns the `replication.rs` example by replicating a hypercore between Rust and Node hypercores and printing the result.\n\n* Node Server / Rust Client\n\n```bash\nnode examples-nodejs/run.js nodeServer\n```\n\n* Rust Server / Node Client\n\n```bash\nnode examples-nodejs/run.js rustServer\n```\n\n* Rust Server / Rust Client\n\n```bash\nnode examples-nodejs/run.js rust\n```\n\n* Node Server / Node Client\n\n```bash\nnode examples-nodejs/run.js node\n```\n\n## Development\n\nTo test interoperability with Javascript, enable the `js_interop_tests` feature:\n\n```bash\ncargo test --features js_interop_tests\n```\n\nRun benches with:\n\n```bash\ncargo bench\n```\n\n## Contributing\n\nWe're actively looking for contributors to the datrust development! If you're interested, the\neasiest is to say hi in the `#rust` channel on the\n[Hypercore Protocol Discord](https://chat.hypercore-protocol.org/).\n\nWant to help with Hypercore Protocol? Check out our\n[\"Contributing\" guide](https://github.com/datrs/hypercore-protocol-rs/blob/master/.github/CONTRIBUTING.md)\nand take a look at the open [issues](https://github.com/datrs/hypercore-protocol-rs/issues).\n\n## License\n\n[MIT](./LICENSE-MIT) OR [Apache-2.0](./LICENSE-APACHE)\n\n[1]: https://img.shields.io/crates/v/hypercore-protocol.svg?style=flat-square\n[2]: https://crates.io/crates/hypercore-protocol\n[3]: https://github.com/datrs/hypercore-protocol-rs/actions/workflows/ci.yml/badge.svg\n[4]: https://github.com/datrs/hypercore-protocol-rs/actions\n[5]: https://img.shields.io/crates/d/hypercore-protocol.svg?style=flat-square\n[6]: https://crates.io/crates/hypercore-protocol\n[7]: https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square\n[8]: https://docs.rs/hypercore-protocol\n\n\u003c/p\u003e\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnostr-org%2Fgnostr-command","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnostr-org%2Fgnostr-command","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnostr-org%2Fgnostr-command/lists"}