<feed xmlns='http://www.w3.org/2005/Atom'>
<title>muxstr.git/api/nostr/v1/nostrv1connect, branch main</title>
<subtitle>Nostr relay with gRPC, HTTP/JSON, and WebSocket interfaces</subtitle>
<id>https://code.northwest.io/muxstr.git/atom?h=main</id>
<link rel='self' href='https://code.northwest.io/muxstr.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.northwest.io/muxstr.git/'/>
<updated>2026-02-14T16:21:01+00:00</updated>
<entry>
<title>refactor: rename project from nostr-grpc to muxstr</title>
<updated>2026-02-14T16:21:01+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-14T16:21:01+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/muxstr.git/commit/?id=0406e24e1259e1a9adcd739da388dcca9ec8feba'/>
<id>urn:sha1:0406e24e1259e1a9adcd739da388dcca9ec8feba</id>
<content type='text'>
Update module path from northwest.io/nostr-grpc to northwest.io/muxstr.
This includes updating all Go imports, protobuf definitions, generated
files, and documentation.
</content>
</entry>
<entry>
<title>feat: add Connect (gRPC over HTTP/JSON) support</title>
<updated>2026-02-14T02:26:53+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-14T02:26:53+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/muxstr.git/commit/?id=83876eae868bd1e4fb6b9a823a6e8173919f290d'/>
<id>urn:sha1:83876eae868bd1e4fb6b9a823a6e8173919f290d</id>
<content type='text'>
Connect integration:
- Buf Connect codegen added to buf.gen.yaml
- Connect handler wraps gRPC server
- Serves on same port as WebSocket (:8080)
- HTTP/2 with h2c for cleartext HTTP/2

Now serving THREE protocols:
1. gRPC (native) on :50051 - binary, high performance
2. Connect on :8080/nostr.v1.NostrRelay/* - HTTP/JSON, browser compatible
3. WebSocket on :8080/ - Nostr standard protocol

All three protocols share:
- Same storage layer
- Same subscription manager
- Same validation logic

Browser-friendly! Call gRPC methods with fetch() or curl.
</content>
</entry>
</feed>
