<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nostr.git/go.mod, branch v0.3.0</title>
<subtitle>zero-dependency Go library for the Nostr protocol</subtitle>
<id>https://code.northwest.io/nostr.git/atom?h=v0.3.0</id>
<link rel='self' href='https://code.northwest.io/nostr.git/atom?h=v0.3.0'/>
<link rel='alternate' type='text/html' href='https://code.northwest.io/nostr.git/'/>
<updated>2026-02-21T02:52:08+00:00</updated>
<entry>
<title>embed secp256k1: replace btcec with internal pure-go implementation</title>
<updated>2026-02-21T02:52:08+00:00</updated>
<author>
<name>Clawd</name>
<email>ai@clawd.bot</email>
</author>
<published>2026-02-21T02:52:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/nostr.git/commit/?id=d641f4566f051656bae79e406155c4f7f65ec338'/>
<id>urn:sha1:d641f4566f051656bae79e406155c4f7f65ec338</id>
<content type='text'>
This removes all external dependencies by embedding the secp256k1-learn
implementation into internal/secp256k1.

Changes:
- Add internal/secp256k1 with field arithmetic, curve ops, keys, schnorr
- Update keys.go to use internal secp256k1 package
- Remove btcec/btcutil dependencies (go.mod is now clean)
- All tests pass

Tradeoffs:
- ~10x slower crypto ops vs btcec (acceptable for nostr use case)
- Not constant-time (documented limitation)
- Zero external dependencies

Refs: code.northwest.io/secp256k1-learn
</content>
</entry>
<entry>
<title>fix: cleanup bench</title>
<updated>2026-02-16T18:58:11+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-16T18:58:11+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/nostr.git/commit/?id=4b7dfe1e7764d8424b1be935c7fea09a102382e8'/>
<id>urn:sha1:4b7dfe1e7764d8424b1be935c7fea09a102382e8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add library comparison benchmarks with build tag isolation</title>
<updated>2026-02-15T02:56:19+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-15T02:56:19+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/nostr.git/commit/?id=7a5d5a53e5d6878f38382c4d35f644e088d318d2'/>
<id>urn:sha1:7a5d5a53e5d6878f38382c4d35f644e088d318d2</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>fix: correct WebSocket GUID constant (RFC 6455)</title>
<updated>2026-02-08T18:25:39+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-08T18:25:39+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/nostr.git/commit/?id=7fba76d7e4e63e0c29da81d6be43330743af1aaf'/>
<id>urn:sha1:7fba76d7e4e63e0c29da81d6be43330743af1aaf</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>wip</title>
<updated>2026-02-07T23:20:57+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-07T23:20:57+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/nostr.git/commit/?id=d4fd2467d691a69a0ba75348086424b9fb33a297'/>
<id>urn:sha1:d4fd2467d691a69a0ba75348086424b9fb33a297</id>
<content type='text'>
</content>
</entry>
</feed>
