Skip to content

Releases: qntx/nosfry

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 08:58

[0.3.0] - 2026-10-23

🚀 Features

  • (worker) Log restore counts on every object construction
  • (bench) Add deployed-gate modes and wss support
  • (conformance) Add remote mode for deployed relays
  • (relay) Integrate yawc 0.5 with pooled deflate state

🐛 Bug Fixes

  • (bench) Disable per-IP rate buckets in the relay config

📚 Documentation

  • (config) State the CPU cost of pooled deflate

⚙️ Miscellaneous Tasks

  • (bench) Allow config variants on nosfry relay entries
  • (bench) Add deflate and placement overrides to the soak
  • (release) 0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 08:46

[0.2.0] - 2026-10-22

🚀 Features

  • (cli) Add export, import, scan, and compact commands
  • [breaking] Add NIP-09 deletion and NIP-40 expiration
  • (relay) Raise the open-file soft limit at startup
  • Add per-connection rate limits and connection caps
  • Add Prometheus metrics
  • Add the strfry write-policy plugin
  • Reload the configuration on SIGHUP
  • [breaking] Add NIP-42 authentication and NIP-70 protected events
  • [breaking] Bound abuse per address and outbound memory per process
  • [breaking] Add NIP-45 COUNT with HyperLogLog
  • (server) Warn when the writer stalls
  • Add NIP-77 negentropy sync
  • [breaking] Honor NIP-62 requests to vanish
  • [breaking] Add the NIP-86 relay management API
  • (sql) Add the SQL event store
  • (core) Add Filter equality and canonical to_json
  • (core) Restore sessions from persisted connection state
  • (sql) Report the earliest stored expiration
  • (worker) Add the host-testable relay object
  • (worker) Add the Durable Object glue and wrangler config
  • (sql) Count the stored events a filter set matches
  • (worker) Answer NIP-45 COUNT
  • (sql) Honor NIP-62 requests to vanish
  • (worker) Drain NIP-62 vanish sweeps in the alarm
  • (sql) Persist and apply NIP-86 moderation state
  • (worker) Serve the NIP-86 management API
  • (worker) Install a panic hook so aborts reach the log
  • (sql) Add a record-only scan for negentropy sync
  • (worker) Negotiate NIP-77 negentropy sync
  • (worker) Gate publishes through a write-policy binding
  • (relay) Enable permessage-deflate by default
  • (worker) Bound live subscriptions by a byte budget
  • (core) Complete the NIP-11 document
  • (core) Add the landing page and NodeInfo documents
  • Serve the landing page and NodeInfo
  • (relay) Enforce REQ and COUNT filter validation
  • (relay) Add TCP keepalive, ops tracing targets, and CLI parity
  • (relay) Budget live subscriptions by approx_bytes

🐛 Bug Fixes

  • (security) Harden the transport against resource exhaustion
  • Reap stale LMDB readers and make compaction crash-safe
  • (core) Stop capping addressable REQs without a d filter
  • Release queued outbound bytes when a connection ends
  • (relay) Flush the close frame queued on read errors
  • (worker) Clear the cached alarm when it fires
  • (worker) Close hibernated sockets with bad attachments
  • (worker) Regenerate colliding connection ids
  • (relay) Publish moderation snapshots in commit order
  • (worker) Answer only the relay endpoints
  • (http) Allow browser NIP-86 calls with shared CORS headers
  • (config) Reject auto_ping_seconds = 0 at load and reload
  • (config) Refuse a write-policy plugin without /bin/sh
  • (conformance) Stop the whole server process group on exit

📚 Documentation

  • Drop a private intra-doc link from vanish_step
  • (server) Mention vanish sweeps on SLOW_WRITE
  • Document the Workers build and conformance runs
  • Slim the README and add contributing and security guides
  • (changelog) Record the workers edition and core moves
  • (security) Note the missing HTTP request rate limit

⚡ Performance

  • (worker) Parse NOSFRY_CONFIG once per isolate
  • (sql) Stream REQ payloads in 64-seq chunks

🚜 Refactor

  • (core) Move WriteOutcome into the core
  • (core) Share the NIP-11 document and auth configuration
  • (core) Take PackedRef views by value
  • (core) Share the moderation state and the NIP-86 protocol
  • (core) Share the negentropy reconcile helpers
  • (core) Share the write-policy protocol
  • (core) Share the effective NIP-11 info

🎨 Styling

  • (bench) Format the harness with rustfmt

🧪 Testing

  • Add cargo-fuzz targets and CI fuzz runs
  • Allow targets of in-flight deletions in the crash test
  • Accept a COUNT that answers before its id is replaced
  • Share the store differential suite
  • (conformance) Add the black-box relay suite
  • (conformance) Fence CLOSE with a barrier before publishing
  • Share the COUNT differential checks
  • (conformance) Cover NIP-45 COUNT
  • Cover NIP-62 in the store differential suite
  • (conformance) Cover NIP-62 request to vanish
  • Share the NIP-86 moderation script across stores
  • (conformance) Cover the NIP-86 management API
  • (conformance) Read management responses by content length
  • Check the record-mode scan against the model
  • (conformance) Cover NIP-77 negentropy reconciliation
  • (conformance) Cover the write-policy protocol on both editions

⚙️ Miscellaneous Tasks

  • Format TOML with taplo and publish a container image
  • Run the conformance suite for both editions
  • (release) 0.2.0

🛡️ Security

  • Bump rustls-webpki and webpki-roots for RUSTSEC-2026-038x (#32)

💼 Other

  • Add the soak harness and its analysis script
  • Serve restricted kinds in the benchmark relay config
  • Disable per-address buckets in the soak config
  • Hold the soak pace after stalls and check outbound drain
  • Exercise COUNT, negentropy and vanish in the soak
  • (worker) Keep target_features in the wrangler build command
  • (deps) Bump yawc to 0.4.4

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 03:55

[0.1.0] - 2026-10-19

🚀 Features

  • Add layer 1 NIP-01 relay with LMDB storage

🐛 Bug Fixes

  • (server) Harden socket writes, shutdown, and live index
  • Accept escaped sub ids and harden event ingest

📚 Documentation

  • (bench) Publish strfry comparison and tooling
  • (bench) Publish round 3 results and durability finding
  • (bench) Publish round 4 results
  • Rewrite the changelog and bench readme for release

⚡ Performance

  • (lmdb) Keep one live iterator per scan cursor
  • Stream scan results and cut per-frame overhead
  • (server) Push scan results to connections in chunks
  • (server) Cut REQ and OK hops and compress at level 1

🧪 Testing

  • (lmdb) Silence dev-dependency lint in the lib test target

⚙️ Miscellaneous Tasks

  • [breaking] Rename the project to nosfry and keep docs local
  • [breaking] Prepare the 0.1.0 release
  • Attach Linux and macOS binaries to GitHub releases