Oddbean new post about | logout
 ## rust-nostr v0.35 is out! 🦀

### Summary

Add gossip model support, deprecate `SQLite` database in favor of `LMDB` (fork of @M. Dilger's 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

### Contributors

Thanks to all contributors!

* @Melonion
* @foma (formerly w3irdrobot) 
* @RydalWater 
* nanikamado

### Links

https://rust-nostr.org
https://rust-nostr.org/donate

#rustnostr #nostr #rustlang #programming #rust #python #javascript #kotlin #swift 
 Wow that is cool. I need to look into it again and update my scripts. On a side note. Can a nip96 request be made via nostr-sdk?  
 Not yet! 
 That makes me feel hopeful. Thank you!  
 Nice work.  Glad to see this progressing, and if I hadn't started out on my own I would have liked to have used rust-nostr for gossip... but gossip is too riddled with nostr-types already.

It looks like quite a significant set of changes to the LMDB stuff, definitely not 'pocket' anymore but using some of those ideas. I'm glad it was of use. 
 Yeah, I've done many changes but the query algorithm and indexing are almost the same.
I removed the event store to support windows targets too. 
 Removing the event store is only a minor performance drop (1 more lookup).

mmap_append originally was only working on linux, but Ashkan Kiani replaced some of my code with memmap2 which is cross-platform.  So now mmap-append works on Windows too, as does the stuff on top of it.  I just noticed that the README is wrong 🤦  .. fixed. 
 I'm curious, does nostr-lmdb run in WASM? I'm guessing that it can't. 
 Unfortunately no. At least, for sure not for `wasm32-unknown-unknown` target. Maybe `wasm32-wasi`. 
 Given that, wouldn't it make sense to keep SQLite as one of the database options, and not deprecate it? 
 SQLite not work too on WASM (at least the rusqlite bindings). 
 I've learned rust just for to using rust-nostr, now I cannot stop writing rust 😅.
nostr:note1z5xaj9l26rh9gjdh3cdcwt54kpfukv7qvvzwzp5z7s3medgfcu0qv0qt3f 
 🫡 
 Thank you very much!