Changelog

Unreleased

Summary

Changed

  • nostr: rename NIP-51 EventBuilder set constructors and Kind variants (Yuki Kishimoto)
  • nostr: small adj. to NIP-47 ListTransactionsRequestParams and LookupInvoiceResponseResult structs (Yuki Kishimoto)
  • nostr: add identifier arg to NIP-51 EventBuilder set constructors (Yuki Kishimoto)
  • nostr: change nip65::extract_relay_list fingerprint (Yuki Kishimoto)
  • nostr: avoid allocation where possible in NIP-05 module (Yuki Kishimoto)
  • nostr: get NIP-46 relays from NIP-05 address (DanConwayDev)
  • pool: use per-purpose dedicated relay channels (Yuki Kishimoto)
  • pool: return relay urls to which messages/events have or not been sent for send_* and batch_* methods (Yuki Kishimoto)
  • pool: return relay urls to which subscription have or not been success for subscribe* methods (Yuki Kishimoto)
  • pool: rename Relay::terminate to Relay::disconnect (Yuki Kishimoto)
  • pool: always send RelayPoolNotification::Message variant (Yuki Kishimoto)
  • sdk: allow to change auto authentication to relays option (NIP-42) after client initialization (Yuki Kishimoto)
  • sdk: Retrieve contact list public keys only from the latest events (Xiao Yu)
  • bindings(nostr): allow to specify coordinates in EventBuilder::delete constructor (Yuki Kishimoto)
  • ffi(sdk): convert RelayPool::handle_notifications method to async/future (Yuki Kishimoto)
  • js: increase max stack size to 0x1E84800 bytes (32 MiB) (Yuki Kishimoto)

Added

Fixed

  • nostr: fix NIP-47 list_transactions response deserialization (Yuki Kishimoto and lnbc1QWFyb24)
  • pool: fix shutdown notification sent to external channel on Relay::terminate method call (Yuki Kishimoto)
  • pool: fix RelayPool::reconcile_advanced method uses database items instead of the passed ones (Yuki Kishimoto)
  • js: fix "RuntimeError: memory access out of bounds" WASM error (Yuki Kishimoto)

Removed

v0.32.0

Summary

Added async/future support to Python, Kotlin and Swift, added automatic authentication to relays (NIP-42, can be deactivated in client options), improvements to relay limits, many bug fixes (relays not auto reconnect, wrong query order for SQLite, tokio panic when using SQLite database in bindings) and more!

Note for kotlin devs: from this release the packages will be published at org.rust-nostr instead of io.github.rust-nostr.

Changed

Added

Fixed

  • nostr: fix re-serialization of events that contains unknown keys during deserialization (Yuki Kishimoto)
  • nostr: fix Nip21::to_nostr_uri serialization (Yuki Kishimoto)
  • pool: fix relay doesn't auto reconnect in certain cases (Yuki Kishimoto)
  • nostr: add missing TagStandard::PublicKeyLiveEvent variant to Event::public_keys (Yuki Kishimoto)
  • sqlite: fix SQLite database panics when used outside the client context in bindings (Yuki Kishimoto)
  • sqlite: fix wrong event order when querying (Yuki Kishimoto)

Removed

  • nostr: remove verify_blocking and get_profile_blocking functions (Yuki Kishimoto)
  • nostr: remove RelayInformationDocument::get_blocking (Yuki Kishimoto)
  • nostr: remove blocking feature (Yuki Kishimoto)
  • sqlite: removed deadpool-sqlite dep (Yuki Kishimoto)
  • ffi(nostr): remove Keys::from_mnemonic_with_account and Keys::from_mnemonic_advanced (Yuki Kishimoto)

v0.31.0

Summary

Reworked Tag, added TagStandard enum, simplified the way to subscribe and/or reconcile to subset of relays (respectively, client.subscribe_to and client.reconcile_with), added blacklist support to mute public keys or event IDs, removed zap split from client.zap method, many improvements and more!

Changed

Added

Fixed

Removed

v0.30.0

Summary

Adapted NIP46 to last changes, added NostrConnectRemoteSigner to easily build remote signers (just construct it and call serve method), improved proxy options (allow to specify the proxy target: all relays or only .onion ones), improvements to NWC client, fixed equality operator for bindings (Python, Kotlin and Swift), added nostrdb storage backend, added NIP32 and completed NIP51 support and more!

Changed

Added

Fixed

Removed

v0.29.4

  • pool: fix InternalRelay::get_events_of_with_callback timeout (Yuki Kishimoto)

v0.29.3

  • pool: check filter limit in InternalRelayPool::get_events_from (Yuki Kishimoto)

v0.29.2

Fixed

v0.29.1

Fixed

  • nostr: fix deserialization issues for events with non-standard k and x tags (Yuki Kishimoto)
  • pool: fix spurious send_event timeout error (DanConwayDev in https://github.com/rust-nostr/nostr/pull/375)