notecrumbs

a nostr opengraph server build on nostrdb and egui
git clone git://jb55.com/notecrumbs
Log | Files | Refs | README | LICENSE

README.md (1534B)


      1 
      2 # notecrumbs
      3 
      4 [![ci](https://github.com/damus-io/notecrumbs/actions/workflows/rust.yml/badge.svg)](https://github.com/damus-io/notecrumbs/actions)
      5 
      6 A nostr opengraph server build on [nostrdb][nostrdb], [egui][egui], and
      7 [skia][egui-skia]. It renders notes using the CPU in around 50ms.
      8 
      9 [nostrdb]: https://github.com/damus-io/nostrdb
     10 [egui]: https://github.com/emilk/egui
     11 [egui-skia]: https://github.com/lucasmerlin/egui_skia
     12 
     13 
     14 ## Status
     15 
     16 WIP!
     17 
     18 - [x] Local note fetching with nostrdb 
     19 - [x] Basic note rendering
     20 - [x] Fetch notes from relays
     21 - [ ] Render profile pictures
     22 - [ ] Cache profile pictures
     23 - [ ] HTML note page
     24 
     25 Very alpha. The design is still a bit rough, but getting there:
     26 
     27 <img style="width: 600px; height: 300px" src="https://damus.io/nevent1qqstj0wgdgplzypp5fjlg5vdr9mcex5me7elhcvh2trk0836y69q9cgsn6gzr.png">
     28 
     29 ## Relay discovery & metrics
     30 
     31 - Notecrumbs keeps long-lived relay connections and now learns new relays from every event it ingests. Relay list (`kind:10002`) events and contact lists (`kind:3`) are parsed for `r`/`relays` tags as well as per-contact relay hints, and the pool deduplicates and connects to any valid URLs it sees.
     32 - Per-request fetch loops feed those hints straight into the shared pool, so visiting a profile helps warm future requests that need the same relays.
     33 - Relay pool health counters (ensure calls, added relays, connect successes/failures, and active relay count) are exposed via Prometheus at `http://127.0.0.1:3000/metrics`, and a mirrored summary is logged every 60 seconds.