diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 29 |
1 files changed, 20 insertions, 9 deletions
| @@ -24,10 +24,12 @@ make build-all # Build both | |||
| 24 | ```bash | 24 | ```bash |
| 25 | ./bin/relay | 25 | ./bin/relay |
| 26 | # or with custom settings: | 26 | # or with custom settings: |
| 27 | ./bin/relay -grpc-addr :50051 -db relay.db | 27 | ./bin/relay -grpc-addr :50051 -ws-addr :8080 -db relay.db |
| 28 | ``` | 28 | ``` |
| 29 | 29 | ||
| 30 | The relay will start listening on `:50051` (gRPC). | 30 | The relay will start: |
| 31 | - **gRPC** on `:50051` | ||
| 32 | - **WebSocket** (Nostr) on `:8080` | ||
| 31 | 33 | ||
| 32 | ### Test with Client | 34 | ### Test with Client |
| 33 | 35 | ||
| @@ -44,18 +46,22 @@ The relay will start listening on `:50051` (gRPC). | |||
| 44 | # - abc123...: Hello from gRPC client! | 46 | # - abc123...: Hello from gRPC client! |
| 45 | ``` | 47 | ``` |
| 46 | 48 | ||
| 47 | **With nak CLI:** | 49 | **With nak CLI (gRPC):** |
| 48 | ```bash | 50 | ```bash |
| 49 | # Pipe events from nak | 51 | # Pipe events from nak |
| 50 | nak event "Hello from nak!" | ./bin/testclient | 52 | nak event "Hello from nak!" | ./bin/testclient |
| 51 | 53 | ||
| 52 | # Or generate a signed event | 54 | # Or generate a signed event |
| 53 | nak event --sec <nsec> --kind 1 "My message" | ./bin/testclient | 55 | nak event --sec <nsec> --kind 1 "My message" | ./bin/testclient |
| 56 | ``` | ||
| 54 | 57 | ||
| 55 | # Output: | 58 | **With nak CLI (WebSocket/Nostr):** |
| 56 | # Read event from stdin: abc123... | 59 | ```bash |
| 57 | # Publishing event... | 60 | # Standard Nostr clients work out of the box! |
| 58 | # ✓ Event published successfully: abc123... | 61 | nak req -k 1 --limit 10 ws://localhost:8080 |
| 62 | |||
| 63 | # Publish via WebSocket | ||
| 64 | echo '{"kind":1,"content":"hello","tags":[]}' | nak event --sec <nsec> | nak publish ws://localhost:8080 | ||
| 59 | ``` | 65 | ``` |
| 60 | 66 | ||
| 61 | ## gRPC API | 67 | ## gRPC API |
| @@ -73,13 +79,18 @@ See [proto/nostr/v1/nostr.proto](proto/nostr/v1/nostr.proto) for the full API. | |||
| 73 | 79 | ||
| 74 | ## Current Status | 80 | ## Current Status |
| 75 | 81 | ||
| 76 | **Phase 1: gRPC Relay** | 82 | **Phase 1: Complete** ✅ |
| 77 | - ✅ SQLite storage with binary-first design | 83 | - ✅ SQLite storage with binary-first design |
| 78 | - ✅ Event validation (ID, signature) | 84 | - ✅ Event validation (ID, signature) |
| 79 | - ✅ gRPC publish/query API | 85 | - ✅ gRPC publish/query API |
| 80 | - ✅ Subscribe/streaming (real-time event delivery) | 86 | - ✅ Subscribe/streaming (real-time event delivery) |
| 81 | - ✅ Subscription management (filter matching, fan-out) | 87 | - ✅ Subscription management (filter matching, fan-out) |
| 82 | - ⏳ WebSocket server (planned for Nostr client compatibility) | 88 | - ✅ **WebSocket server (NIP-01) - standard Nostr clients work!** |
| 89 | |||
| 90 | **Compatible with:** | ||
| 91 | - Any gRPC client (custom or generated) | ||
| 92 | - Any Nostr client (Damus, Amethyst, Snort, Iris, Gossip, etc.) | ||
| 93 | - nak CLI for testing | ||
| 83 | 94 | ||
| 84 | ## Development | 95 | ## Development |
| 85 | 96 | ||
