Repository navigation
Releases: qntx/nosfry
Releases · qntx/nosfry
Release list
v0.3.0
[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
[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
[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