Thread

Zero-JS Hypermedia Browser

Relays: 5
Replies: 8
Generated: 02:16:36
First of all, thank you for this PR. As I've explained in my other message, I'm not sure if I'll accept it. Questions for you. How bad would it be for you to migrate your own DB to using a new library? Do you use many of the feature of go-nostr / nostrlib provides other that structure methods (Sign, CheckID...)? If so, which ones?
2025-11-04 21:35:30 from 1 relay(s) ↑ Parent 1 replies ↓
Login to reply

Replies (8)

No, it's mostly just the core structures that I use. I could migrate to go-nostr, but nostrlib is genuinely better in this area. I attempted to switch to rely this morning and decided against it for now due to the lack of negentropy and blossom support. I get not wanting to include that stuff, but examples or external libraries would make the process easier (I do think negentropy should be table stakes for relays nowadays).
2025-11-04 21:40:00 from 1 relay(s) ↑ Parent 3 replies ↓ Reply
Thanks for the feedback. To me, blossom is an orthogonal thing, which can be added in this way: - create an http server (there are many many frameworks in go, even the standard library is fine). - create a relay - use the relay handlers in the http server (relay.ServeWS, relay.ServeNip11) - add the blossom handlers to the server and voilà, server is now relay + blossom. For negentropy, that is another story since it used the websocket protocol. It would be a nice addition to rely, so I'll add it to the roadmap. I am just conscious about complexity in general, since I want to maintain rely long term, not leave it rotting.
2025-11-04 22:10:33 from 1 relay(s) ↑ Parent 1 replies ↓ Reply
How about a new library that has only data structures, no dependencies, minimal utilities like a relay pool, Query, Subscribe, and very performant JSON marshalling / unmarshalling? Man I am so tempted to build this
2025-11-04 22:16:26 from 1 relay(s) ↑ Parent 1 replies ↓ Reply
my relay #orly has a blossom server built into it now. the library has the fastest event codecs for both the database binary version and the json, i just finished adding a feature where it can now load the libsecp256k1 library as a dynamic linkable without the cgo complications (you just need a version of the library with schnorrsig extension on). it doesn't have negentropy but i have built a sync protocol that lets you build a cluster that stays in sync, and using the new policy engine you can specialise nodes to only replicate some specific criteria of events. i probably should put negentropy in there. easy enough to copy it out of khatru.
2025-11-05 06:15:12 from 1 relay(s) ↑ Parent 1 replies ↓ Reply