nobody @nobody - 1y
nostr:npub1fjqqy4a93z5zsjwsfxqhc2764kvykfdyttvldkkkdera8dr78vhsmmleku if one was doing client stuff, what’s the best pkg for go Nostr development right now?
David @mleku - 1y
idk, i hear NDK is pretty complete, has the most devs working on it https://github.com/nostr-dev-kit/ndk nostrudel uses the NPM package nostr-tools which is not quite as complete (afaik it still hasn't got NIP-42)
How does one use this in go?
oh haha... i'm a #golang gopher also... my nostr library is almost ready for release, but https://github.com/nbd-wtf/go-nostr is usable i'm just not popping it out of the #replicatr monorepo until i'm done with my current task at which point i will have high confidence everything in the library is stable and reasonably optimal release day is officially gonna be 27 may as that's when our final grant assessment happens so after that's done i'll spend a couple hours pushing it out there will be the nostr library, all organised with readable, idiomatic names instead of stupid nip numbers and everything logically grouped instead of the nip-grouping of go-nostr there will be a badger based event store that can be extended with any arbitrary database back end to become a two-level data store system, so you can have cheap, slow storage as your #layer2 and have a reliable, self-cleaning #layer1 event store that keeps its size limited according to your settings i also today learned how to cage a process inside a specific amount of memory so i know that it runs fine in 500Mb also
ah yes, and you can have a single tier of storage that maintains a storage limit as well i'm in the thick of finalising a fast garbage collection mark and sweep on it that can be used either as solo #layer1 or incorporated with a secondary #layer2 it's the meat in the sandwich of the mission of my last 5 months of work to build a relay that can be backed by any arbitrary large distributed data store so the relay deployments themselves can be small and cheap, about $15 a month VPS probably will be sufficient and you can run several and use round robin DNS or other load balancing with reverse proxy or similar, but for sharding benefits better to scatter users among them so each relay has a specific focus and demand level that is not generalised and the benefit of separating them lost anyhow, it still will work out a lot faster than depending on a single distributed database back end for sure, that's the main goal of the work, because it's being funded by a shitcoin and they literally think they can make a usable relay inside a 1mb up/4mb down blockchain cluster smart contract i know, how can they not know? with this they will be able to cope with 100k users with a cluster of like 4 relays attached to their back end
Awesome. Thanks for the detailed explanation and pointers. I’m considering an idea for a TUI client. Was looking at using Charm for the TUI because I follow one of the creators and it looks really good. Didn’t know if there were many good libraries for Nostr stuff. I’d love to code it all myself but only because I have a bad tendency to overextend myself. When I decided on golang I knew you’d be the one to ask. Golang and mleku are synonymous to me now.
yes i'm a golang maxi i'm looking forward to releasing the nostr library and event store, i'll be announcing the new setup and i'm also planning to throw out the whole existing gitea hosting so i can push stuff to subdomains so it will be like nostr.mleku.dev and replicatr.mleku.dev and eventstore.mleku.dev i hope i can get lucky in the next year or two, get me a little goat ranch, build me a bunker, and build a really sweet DSL for the golang GUI https://gioui.org including such things as responsive layouts and crispy 60+fps animations but it'll take time, gotta focus on what is bringing in the money at this point, and stack my sats as hard as i can