The project is split up into several crates in the crates/
directory:
- Libraries:
- nostr: Rust implementation of Nostr protocol.
- nostr-database: Database for Nostr apps
- nostr-rocksdb: RocksDB Storage backend for Nostr apps
- nostr-sqlite: SQLite Storage backend for Nostr apps
- nostr-indexeddb: IndexedDB Storage backend for Nostr apps
- nostr-relay-pool: Nostr Relay Pool
- nostr-signer: Signer for Nostr apps
- nostr-zapper: Zapper abstraction for Nostr apps
- nostr-webln: WebLN zapper backend for Nostr apps
- nostr-sdk: High level client library.
- nwc:
NWC
client and zapper backend for Nostr apps
- Binaries (tools):
- nostr-cli: Nostr CLI
nostr and nostr-sdk crates can be embedded inside other environments, like Swift, Kotlin, Python and JavaScript.
Please, explore the bindings/
directory to learn more.
nostr crate can be used in no_std
environments.
Check the example in the embedded/
directory.
- nostr:
- nostr-sdk:
These libraries are in ALPHA state, things that are implemented generally work but the API will change in breaking ways.
rust-nostr
is free and open-source. This means we do not earn any revenue by selling it. Instead, we rely on your financial support. If you actively use any of the rust-nostr
libs/software/services, then please donate.
This project is distributed under the MIT software license - see the LICENSE file for details