Avatar
Yuki Kishimoto
68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272
GitHub: https://github.com/yukibtc PGP: 86F3 105A DFA8 AB58 7268 DCD7 8D3D CD04 2496 19D1

Unfortunately yes. I'll try to add support for negentropy in nostr-rs-relay soon.

Replying to Avatar Yuki Kishimoto

Stats obtained from 766072 NIP-65 lists, downloaded from the following relays: Damus, Primal, purplepag and 0xtr. After extracting and deduplicating the data from the lists, the total unique relays are 5735, of which 1341 reachable. Of these, only 219 supports negentropy.

=== Relay Statistics ===

Total known relays: 5735

Reachable relays: 1341/5735 (23.4%)

=== Negentropy Support (NIP77) ===

Total relays: 219/1341 (16.3%)

=== Top 20 implementations ===

1. https://git.sr.ht/~gheartsfield/nostr-rs-relay: 426 (34.8%)

2. git+https://github.com/hoytech/strfry.git: 283 (23.1%)

3. https://github.com/bitvora/haven: 137 (11.2%)

4. https://relay.nostr.band: 52 (4.2%)

5. git+https://github.com/Cameri/nostream.git: 49 (4.0%)

6. https://github.com/bitvora/wot-relay: 35 (2.9%)

7. https://github.com/fiatjaf/khatru: 34 (2.8%)

8. git+https://github.com/cameri/nostream.git: 34 (2.8%)

9. chorus: 12 (1.0%)

10. https://github.com/bitvora/sw2: 9 (0.7%)

11. unknown: 9 (0.7%)

12. https://github.com/rnostr/rnostr: 7 (0.6%)

13. https://github.com/CodyTseng/nostr-relay-tray: 7 (0.6%)

14. NFDB: 6 (0.5%)

15. https://github.com/github-tijlxyz/khatru-pyramid: 6 (0.5%)

16. https://github.com/Spl0itable/nosflare: 6 (0.5%)

17. https://github.com/haorendashu/cfrelay: 6 (0.5%)

18. https://gitlab.com/soapbox-pub/ditto: 6 (0.5%)

19. https://github.com/quentintaranpino/nostrcheck-server: 5 (0.4%)

20. LNbits: 5 (0.4%)

... and 60 more implementations

Source code (experimental): https://github.com/rust-nostr/nostr-stats

As it is written pretty much everywhere, the project is in alpha state, so obviously the documentation is not complete. PRs are welcome to improve it.

To parse a public key (hex, bech32 or nostr URI): `PublicKey.parse`.

I've reworked the NostrParser at https://github.com/rust-nostr/nostr/pull/899

This improves the performance of ~2x and reduces the final binary size.

I'm merge this soon, if anyone is interested in testing or reviewing the PR, please share a feedback!

#rust-nostr #rustnostr

Replying to Avatar Yuki Kishimoto

## rust-nostr v0.42 is out! ๐Ÿฆ€

### Summary

Blossom, NostrMLS, Relay Monitor, NIP-70 support for relay-builder, NIP-46 reworks, some bug fixes and more!

Note for who is interested in NostrMLS: it's not currently available on https://crates.io as it depends on an unreleased version of openmls. However, you can use it directly from git. The bindings will be available in the upcoming releases.

Full changelog: https://rust-nostr.org/changelog

### Bindings specific changes

Added support for event streaming and extended supported OS and architectures.

New supported platforms for Python, C# and JVM bindings:

- Windows x86 and aarch64

- Linux (GLIBC) x86, armv7 and riscv64

- Linux (MUSL) x86, x86_64, armv7, aarch64 and riscv64

Check all supported OS and architectures at https://rust-nostr.org/sdk/install

### Contributors

Thanks to all contributors!

- nostr:nprofile1qqsqqqqqq9g9uljgjfcyd6dm4fegk8em2yfz0c3qp3tc6mntkrrhawgppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7hsrsym

- nostr:nprofile1qqsgk2lq5zknfqzaweneyukz3fmahm0f4h9lmjjgc6q7ezmzfgfq3fspy9mhxue69uhhyetvv9ujuerpde5k2mryv9ch26twduhx6ef0vd5xzaqpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qzxrhwden5te0wfjkccte9eekummjwsh8xmmrd9skcpfd56q

- nostr:nprofile1qqspwwwexlwgcrrnwz4zwkze8rq3ncjug8mvgsd96dxx6wzs8ccndmcpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgqgcwaehxw309aex2mrp0yh8xmn0wf6zuum0vd5kzmqpzfmhxue69uhhqatjwpkx2urpvuhx2uctyqxu5

- nostr:nprofile1qqspycgrhlwu3he9ddhq407h7duheqxucn4g3a7zlp7agyzzyz6dvhcpzdmhxue69uhhyetvv9ujuun909sjuum4k6ff74

- nostr:nprofile1qqsp5hlu2xsjxqlaqgk5s8eha4sv8a7nwhmxumufzeu2rn653wy7prqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsxwfknl

### Links

https://rust-nostr.org

https://rust-nostr.org/donate

#rustnostr #nostr #rustlang #programming #rust #python #csharp #dotnet #javascript #kotlin #swift #flutter

Release v0.42.1 is out, which includes a couple of bug fixes related to NIP-47.

#rustnostr #rust-nostr #rust #rustlang #python #csharp #dotnet #javascript #typescript #kotlin #swift #flutter

nostr:nevent1qqs0l9nw3t8askgyq2hl7dy2lp7g89jg660v85d9xy0sc99mhpucc8gpz3mhxw309ucnydewxqhrqt338g6rsd3e9upzq6xcz9jerqgqkldy8lpg7lglcyj4g3nwzy2cs6u70wejdaj7csnjqvzqqqqqqydp9xwa

## rust-nostr v0.42 is out! ๐Ÿฆ€

### Summary

Blossom, NostrMLS, Relay Monitor, NIP-70 support for relay-builder, NIP-46 reworks, some bug fixes and more!

Note for who is interested in NostrMLS: it's not currently available on https://crates.io as it depends on an unreleased version of openmls. However, you can use it directly from git. The bindings will be available in the upcoming releases.

Full changelog: https://rust-nostr.org/changelog

### Bindings specific changes

Added support for event streaming and extended supported OS and architectures.

New supported platforms for Python, C# and JVM bindings:

- Windows x86 and aarch64

- Linux (GLIBC) x86, armv7 and riscv64

- Linux (MUSL) x86, x86_64, armv7, aarch64 and riscv64

Check all supported OS and architectures at https://rust-nostr.org/sdk/install

### Contributors

Thanks to all contributors!

- nostr:nprofile1qqsqqqqqq9g9uljgjfcyd6dm4fegk8em2yfz0c3qp3tc6mntkrrhawgppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7hsrsym

- nostr:nprofile1qqsgk2lq5zknfqzaweneyukz3fmahm0f4h9lmjjgc6q7ezmzfgfq3fspy9mhxue69uhhyetvv9ujuerpde5k2mryv9ch26twduhx6ef0vd5xzaqpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qzxrhwden5te0wfjkccte9eekummjwsh8xmmrd9skcpfd56q

- nostr:nprofile1qqspwwwexlwgcrrnwz4zwkze8rq3ncjug8mvgsd96dxx6wzs8ccndmcpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgqgcwaehxw309aex2mrp0yh8xmn0wf6zuum0vd5kzmqpzfmhxue69uhhqatjwpkx2urpvuhx2uctyqxu5

- nostr:nprofile1qqspycgrhlwu3he9ddhq407h7duheqxucn4g3a7zlp7agyzzyz6dvhcpzdmhxue69uhhyetvv9ujuun909sjuum4k6ff74

- nostr:nprofile1qqsp5hlu2xsjxqlaqgk5s8eha4sv8a7nwhmxumufzeu2rn653wy7prqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsxwfknl

### Links

https://rust-nostr.org

https://rust-nostr.org/donate

#rustnostr #nostr #rustlang #programming #rust #python #csharp #dotnet #javascript #kotlin #swift #flutter

I've just published a pre-release for the python nostr-sdk (version `0.42.0a2`), using the ABI3. I've also extended the support to Linux x86, windows x86 and aarch64.

If anyone is interested in trying it, please share a feedback if something doesn't work.

https://pypi.org/project/nostr-sdk/0.42.0a2/

#rust-nostr #rustnostr #python

When it'll be ready, I'll expose it in nostr-sdk bindings, or more likely in a dedicated library (depending on the impact on the binaries size).

## rust-nostr v0.41 is out! ๐Ÿฆ€

### Summary

Added NIP-C0 support and NIP-98 helpers, fixed NIP-32 and NIP-47 implementations, added nostr-keyring crate, extended admission policies for granular control over which relays can connect and which cannot (useful when gossip mode is enabled), enabled POSIX semaphores for LMDB on iOS & macOS to fix issues with App Sandbox, extended arch support for C# and JVM bindings (linux-x86, windows-x86 and windows-arm64) and more!

For those who missed it, from v0.40.0 are available the C# bindings for nostr-sdk: nostr:nevent1qvzqqqqqqypzq6xcz9jerqgqkldy8lpg7lglcyj4g3nwzy2cs6u70wejdaj7csnjqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz9mhxue69uhkummnw3ezuamfdejj7qpq60a39dpp64mhu422q0wd9ztqper0hxhkl4p3qv2mjnrzpvzpf2eq2js3yy

Full changelog: https://rust-nostr.org/changelog

### Contributors

Thanks to all contributors!

* nostr:nprofile1qqsqqqqqq9g9uljgjfcyd6dm4fegk8em2yfz0c3qp3tc6mntkrrhawgpzfmhxue69uhkummnw3ezudrjwvhxumq3dg0ly

* nostr:npub1kuemsj7xryp0uje36dr53scn9mxxh8ema90hw9snu46633n9n2hqp3drjt

### Links

https://rust-nostr.org

https://rust-nostr.org/donate

#rustnostr #nostr #rustlang #programming #rust #python #javascript #kotlin #swift #flutter #csharp #dotnet

Nostr.Sdk package for C# is out!

https://www.nuget.org/packages/Nostr.Sdk

Some basic examples are available at https://rust-nostr.org/

#rust-nostr #rustnostr #csharp #dotnet #nostr #devstr #rustlang

Because I was using SQLite only for persistence. When it was opened, all the data was loaded into RAM, in the DatabaseHelper. It was basically an in-memory database with SQLite as persistence.

Using the NostrDatabase traits, you can implement your own database, and use it in rust-nostr. But if anyone is interested to open a PR to implement a "pure" SQLite backend, I'll merge it.