Awesome
Nostr
Project structure
The project is split up into several crates in the crates/
directory:
- Libraries:
- nostr: Rust implementation of Nostr protocol
- nostr-connect: Nostr Connect (NIP46)
- nostr-database: Database for Nostr apps
- nostr-lmdb: LMDB storage backend
- nostr-ndb: nostrdb storage backend
- nostr-indexeddb: IndexedDB storage backend
- nostr-relay-pool: Nostr Relay Pool
- nostr-zapper: Zapper abstraction for Nostr apps
- nostr-sdk: High level client library
- nwc: Nostr Wallet Connect (NWC) client
- Binaries (tools):
- nostr-cli: Nostr CLI
Bindings
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.
Embedded
nostr crate can be used in no_std
environments.
Check the example in the embedded/
directory.
Book
Learn more about rust-nostr
at https://rust-nostr.org.
Available packages
- nostr:
- nostr-sdk (re-export everything from
nostr
library):- Rust: https://crates.io/crates/nostr-sdk
- Python: https://pypi.org/project/nostr-sdk
- Kotlin: https://central.sonatype.com/artifact/org.rust-nostr/nostr-sdk
- Swift: https://github.com/rust-nostr/nostr-sdk-swift
- JavaScript: https://www.npmjs.com/package/@rust-nostr/nostr-sdk
- Flutter: bindings/nostr-sdk-flutter
State
These libraries are in ALPHA state, things that are implemented generally work but the API will change in breaking ways.
Donations
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.
License
This project is distributed under the MIT software license - see the LICENSE file for details