fiatjaf d445ba9919 mmm: free ranges tracking improved with b.freeRangesLarge and b.freeRangesAll
one is unsorted and fast and we only care about it with picking a new free range.
the other is sorted and used when merging a new freed range with existing free ranges.
both are computed from the events id index at beginning, then tracked manually on each addition or deletion.
this change uncovered some errors so we fixed them and added some more fuzz test invariant checking.
code is simplified a little bit.
there was another thing I forgot.
2026-02-17 18:33:59 -03:00
2025-11-23 06:57:54 -03:00
2025-11-23 06:57:54 -03:00
2025-05-12 10:18:06 -03:00
2025-04-15 00:00:03 -03:00
2026-01-26 17:22:22 -03:00
2025-06-08 10:53:15 -03:00
2025-04-15 00:00:03 -03:00
2025-11-23 17:52:39 -03:00
2025-04-15 00:00:03 -03:00
2025-11-23 06:57:54 -03:00
2025-07-28 09:35:37 -03:00
2025-10-24 23:34:02 -03:00
2025-04-16 02:59:47 -03:00
2025-11-23 06:57:54 -03:00
2025-09-26 09:41:25 -03:00
2025-04-15 00:00:03 -03:00
2026-01-14 00:53:05 -03:00
2025-04-15 00:00:03 -03:00
2025-04-15 00:00:03 -03:00
2025-03-07 15:50:55 -03:00
2025-11-23 06:57:54 -03:00
2025-11-23 06:57:54 -03:00
2025-11-23 06:57:54 -03:00
2025-11-23 06:57:54 -03:00
2025-11-23 06:57:54 -03:00
2025-11-23 18:34:31 -03:00
2025-11-23 06:57:54 -03:00
2025-04-15 00:00:03 -03:00
2025-04-15 08:49:28 -03:00
2025-11-23 06:57:54 -03:00
2026-01-13 13:17:07 -03:00
2025-04-17 20:30:44 -03:00
2025-09-27 10:48:33 -03:00
2025-11-23 06:57:54 -03:00
2025-11-23 06:57:54 -03:00

nostr

A comprehensive Go library for the Nostr protocol, providing everything needed to build relays, clients, or hybrid applications.

This is a new, much improved in all aspects, version of go-nostr.

Installation

go get fiatjaf.com/nostr

Components

  • eventstore: Pluggable storage backends (Bleve, BoltDB, LMDB, in-memory, MMM)
  • khatru: Flexible framework for building Nostr relays
  • khatru/blossom: Plugin for a Khatru server that adds flexible Blossom server support
  • khatru/grasp: Plugin for a Khatru server that adds Grasp server support
  • sdk: Client SDK with caching, data loading, and outbox relay management
  • keyer: Key and bunker management utilities
  • NIP-specific libraries with helpers and other things for many NIPs and related stuff, including blossom, negentropy and cashu mini-libraries.
S
Description
A comprehensive Go library for the Nostr protocol, providing everything needed to build relays, clients, or hybrid applications.
Readme Unlicense 11 MiB
Languages
C 71.2%
Go 28.2%
Assembly 0.6%