summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* README: emphasize minimal dependenciesmainClawd3 hours1-14/+27
|
* Clean up project structureClawd3 hours7-0/+60
| | | | | | | - Add README.md - Move benchmark files to benchmarks/ - Move PLAN.md to .claude/ - Add .gitignore
* fix: cleanup benchbndw4 hours11-33/+200
|
* feat: add library comparison benchmarks with build tag isolationbndw44 hours7-13/+875
| | | | | | | | Add comprehensive benchmarks comparing NWIO against nbd-wtf/go-nostr and fiatjaf.com/nostr across event operations, signing, verification, and filtering. Use build tag 'benchcmp' to prevent competitor libraries from polluting module dependencies - they're only downloaded when explicitly running comparison tests.
* fix: correct WebSocket GUID constant (RFC 6455)bndw8 days5-11/+303
| | | | | | | | | | | Fixed typo in WebSocket GUID that was causing handshake failures. The GUID had '5AB5' instead of 'C5AB0' in the middle section. Correct value: 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 This also includes the implementation of an internal WebSocket client to replace the external dependency, providing a minimal implementation tailored for Nostr relay connections.
* refactor: race-safe Subscribe/Fetch API with channel-based Publishbndw9 days4-135/+176
| | | | | | | | | | - Add mutex-guarded send/stop on Subscription to prevent send-on-closed-channel panics and data races - Split Subscribe (streams after EOSE) and Fetch (closes on EOSE) per NIP-01 - Rewrite Publish to use channel-based OK dispatch instead of calling Receive directly, which raced with the auto-started Listen goroutine - Clean up all subscriptions when Listen exits so range loops terminate - Update tests and examples for new API
* wipbndw9 days21-0/+3800