ndk 0.6.0-dev.10
ndk: ^0.6.0-dev.10 copied to clipboard
Nostr Development Kit - the most performant lib for all your nostr usecases
Dart Nostr Development Kit (NDK) #
NDK (Nostr Development Kit) is a Dart library that enhances the Nostr development experience.
NDK supplies you with high-level usecases like lists or metadata while still allowing you to use low-level queries enhanced with inbox/outbox (gossip) by default.
Our Target is to make it easy to build constrained Nostr clients, particularly for mobile devices.
Apps using NDK #
β‘οΈ Getting Started π #
Changelog π #
Core Features #
Network & Data Management #
- Automatic relay discovery using inbox/outbox (gossip) model for optimal relay selection
- Flexible data fetching with query (one-time) and subscription (real-time) modes
- Smart caching to reduce network bandwidth and improve performance
- Concurrent event streaming from both cache and network
- Request coverage control to specify desired relay coverage per request
Account & Authentication #
- Multiple signer support: Built-in (BIP-340), Amber, NIP-07 (web), and NIP-46 (remote signing/bunkers)
- Account management with state tracking and multiple account support
- Relay authentication (NIP-42) for private relay access
High-Level Use Cases #
- Metadata management: Query and update user profiles with automatic caching
- Contact lists: Follow/unfollow users and manage contact lists
- NIP-51 lists: Public and private relay sets, mute lists, and custom lists
- Gift wrap (NIP-59): Encrypted, metadata-obscured messaging
- Zaps (NIP-57): Lightning payments on Nostr
- Nostr Wallet Connect (NIP-47): Integrate Lightning wallets
- Domain verification (NIP-05): Verify and cache Nostr addresses
- File management: Upload, download, and delete files using Blossom servers
- Connectivity: Get notified about connection issues
- Proof of Work (NIP-13): Create and verify PoW events
Developer Experience #
- Pluggable architecture: Bring your own cache, verifier, or signer, replace any component
- Multiple database options: In-memory, Isar, ObjectBox, Sembast
- Event verification: BIP-340 or Rust-based (recommended for performance)
- Comprehensive logging with configurable log levels and outputs
- Clean architecture for maintainability and extensibility
not Included #
- ready to use feeds, you have to build them on your own (π« not planned)
- create && manage keypairs. You have to provide them (π« not planned)
- threading, you can do this on your own if you move ndk or only the event_verifier into its own thread (π planned)
- support for request overrides (you have to close and reopen requests) (π« not planned)