Releases: rust-nostr/nostr
Release v0.39.0
Add NIP96 support, add NIP22 helpers, NIP01 adjustments, add try_connect
and wait_for_connection
methods for better connection handling, support for custom WebSocket clients (both in Rust, Python, Kotlin and Swift), new JVM bindings, huge reduction of UniFFI bindings binaries size, many cleanups, refactoring and performance improvements and more!
Full changelog: https://rust-nostr.org/changelog
Release v0.38.0
Full NIP42 support for SDK and relay builder, negentropy support and read/write policy plugins for relay builder,
NIP35 support, better logs and docs, performance improvements, bugs fix and more!
Full changelog: https://rust-nostr.org/changelog
Release v0.37.0
Add support to NIP17 relay list in SDK (when gossip
option is enabled), add NIP22 and NIP73 support,
fix Swift Package, many performance improvements and bug fixes and more!
From this release all the rust features are be disabled by default (except std
feature in nostr
crate).
Full changelog: https://rust-nostr.org/changelog
Release v0.36.0
Many, many improvements to Relay
and RelayPool
performance (reduced atomic operations and switched to async concurrency), add NostrSigner
trait, better methods and struct names (fetch_events
instead of get_events_of
, sync
instead of reconcile
, NostrConnect
instead of Nip46Signer
and so on), add LocalRelay
and allow to easily serve it as hidden onion service with the embedded tor client, allow to keep track of negentropy sync progress, almost halved the weight of JavaScript SDK bindings (from ~6.3MB to ~3.6MB), some fixes and many more!
Note for Python, Kotlin, Swift and JavaScript devs: unfortunately I can't mark things as deprecated in bindings, so this release have many breaking changes, sorry :(
Note for devs who are using nostr-protocol
(Python), org.rust-nostr:nostr
(Kotlin), nostr-swift
(Swift) or @rust-nostr/nostr
(JavaScript) libraries: these packages are now deprecated. Only the nostr-sdk
library will be released, which include everything that was in those libraries.
Full changelog: https://rust-nostr.org/changelog
Release v0.35.0
Add gossip model support, deprecate SQLite
database in favor of LMDB
(fork of pocket database), add support to negentropy v1 (old version is still supported!), add MockRelay
(a local disposable relay for tests), allow usage of embedded tor client on mobile devices, many improvements, bugs fix and more!
Full changelog: https://rust-nostr.org/changelog
Release v0.34.0
Add embedded tor client support, allow to open databases with a limited capacity (automatically discard old events when max capacity is reached), add Client::stream_events_of
as alternative method to Client::get_events_of
(stream events instead of waiting for EOSE
and collect into a list), add search capability (NIP-50) support to Filter::match_event
and databases, add NIP-31 and NIP-70 support, add option to autoconnect relay on Client::add_relay
method call (currently disabled by default), rework the get_events_of
methods behaviour for better consistency (RelayPool::get_events_of
and Relay::get_events_of
get events only from remote relay/s while Client::get_events_of
allow to choose the source of events: database
, relays
or both
), bugs fix and more!
Full changelog: https://rust-nostr.org/changelog
Release v0.33.0
Better outputs for send
/batch
/reconcile
methods (ex. you can now easily know where a message/event is successfully published and where/why failed),
allow to change NIP-42 option after client initialization, increase max stack size for JS bindings to prevent "memory access out of bounds" error,
expose more objects/methods for JS bindings, dry run option for negentropy reconciliation, get NIP-46 relay from NIP-05 profile,
bug fixes (NIP-42 auth not works correctly, NIP-46 "ACK" message not handled, ...) and more!
Full changelog: https://rust-nostr.org/changelog
Release v0.32.0
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
.
Full changelog: https://rust-nostr.org/changelog
Release v0.31.0
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!
Full changelog: https://rust-nostr.org/changelog
Release 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
- Bump
uniffi
tov0.27
(Yuki Kishimoto) - Adapted NIP46 to last changes (Yuki Kishimoto)
- nostr: change
Tag::parse
arg fromVec<S>
to&[S]
(Yuki Kishimoto) - nostr: allow to parse public key from NIP21 uri with
PublicKey::parse
(Yuki Kishimoto) - nostr: allow to parse event ID from NIP21 uri with
EventId::parse
(Yuki Kishimoto) - nostr: construct
GenericTagValue
based onSingleLetterTag
indeserialize_generic_tags
(Yuki Kishimoto) - nostr: set
UnsignedEvent
ID as optional (Yuki Kishimoto) - nostr: update
TryIntoUrl::try_into_url
fingerprint (Yuki Kishimoto) - nostr: bump
bitcoin
to0.31
(Yuki Kishimoto) - sdk: bump
lnurl-pay
to0.4
(Yuki Kishimoto) - sdk: improve
proxy
options (Yuki Kishimoto) - pool: bump
async-wsocket
to0.4
(Yuki Kishimoto) - pool: return error if
urls
arg is empty inInternalRelayPool::get_events_from
(Yuki Kishimoto) - pool: allow to disable
RelayLimits
(Yuki Kishimoto) - signer: re-work
nip46
module (Yuki Kishimoto) - nwc: avoid to open and close subscription for every request (Yuki Kishimoto)
- nwc: allow to customize requests timeout (Yuki Kishimoto)
- js(nostr): consume
JsEventBuilder
when buildingEvent
orUnsignedEvent
(Yuki Kishimoto)
Added
- Add support to
nostrdb
storage backend (Yuki Kishimoto) - nostr: add
Report::Other
variant (Daniel Cadenas) - nostr: add
EventBuilder::reaction_extended
(Yuki Kishimoto) - nostr: add NIP32 support (rustedmoon)
- pool: add
Relay::handle_notifications
(Yuki Kishimoto) - cli: add command to serve
Nostr Connect
signer (Yuki Kishimoto) - ffi(nostr): added
FilterRecord
, to allow to access fields inFilter
(Yuki Kishimoto) - ffi(nostr): add missing NIP51 constructors (rustedmoon)
- ffi(sdk): add
AbortHandle
(Yuki Kishimoto) - ffi(sdk): add
sqlite
andndb
features (Yuki Kishimoto) - js(nostr): add missing NIP51 constructors (rustedmoon)
- js(nostr): add NIP47 request params and response results structs (Yuki Kishimoto)
- js(sdk): add
NWC
client (Yuki Kishimoto) - js(sdk): add
NostrDatabase::save_event
method (Xiao Yu)
Fixed
- nostr: fix
Tag::content
return alwaysNone
whenTag::Generic
(Yuki Kishimoto) - nostr: fix NIP46
Request::from_message
deserialization (Yuki Kishimoto) - nostr: fix
NostrConnectURI
serialization (Yuki Kishimoto) - nostr: fix
LookupInvoiceParams
(benthecarman) - ffi: fix equality operator (
==
) (Yuki Kishimoto) - js(nostr): fix
Keys
method calls in examples (Xiao Yu)
Removed
- Removed deprecated (Yuki Kishimoto)
Full Changelog: v0.29.0...v0.30.0