diff options
Diffstat (limited to 'docs/explanation/comparison.md')
| -rw-r--r-- | docs/explanation/comparison.md | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/docs/explanation/comparison.md b/docs/explanation/comparison.md index 090e0eb..315f091 100644 --- a/docs/explanation/comparison.md +++ b/docs/explanation/comparison.md | |||
| @@ -11,7 +11,7 @@ This document compares ngit-grasp (this project) with ngit-relay (the reference | |||
| 11 | | **Git Protocol** | git-http-backend (C via fcgiwrap) | HTTP layer in Rust + git subprocess | | 11 | | **Git Protocol** | git-http-backend (C via fcgiwrap) | HTTP layer in Rust + git subprocess | |
| 12 | | **Authorization** | Pre-receive Git hook | Inline HTTP handler validation | | 12 | | **Authorization** | Pre-receive Git hook | Inline HTTP handler validation | |
| 13 | | **Nostr Relay** | Khatru (Go library) | nostr-relay-builder (Rust library) | | 13 | | **Nostr Relay** | Khatru (Go library) | nostr-relay-builder (Rust library) | |
| 14 | | **Event Store** | Badger (Go KV database) | LMDB or NostrDB (Rust) | | 14 | | **Event Store** | Badger (Go KV database) | LMDB (Rust) | |
| 15 | | **Proactive Sync** | Git-only (polls DB + fetches from git servers) | Nostr event sync + git sync (event-driven) | | 15 | | **Proactive Sync** | Git-only (polls DB + fetches from git servers) | Nostr event sync + git sync (event-driven) | |
| 16 | | **Process Management** | supervisord (4 processes) | Single tokio runtime | | 16 | | **Process Management** | supervisord (4 processes) | Single tokio runtime | |
| 17 | | **Packaging** | Docker with supervisord | Single static binary or Docker | | 17 | | **Packaging** | Docker with supervisord | Single static binary or Docker | |
| @@ -78,7 +78,7 @@ This document compares ngit-grasp (this project) with ngit-relay (the reference | |||
| 78 | │ │ │ │ builder library) │ │ | 78 | │ │ │ │ builder library) │ │ |
| 79 | │ │ - info/refs │ │ - NIP-34 Policy │ │ | 79 | │ │ - info/refs │ │ - NIP-34 Policy │ │ |
| 80 | │ │ - upload-pk │◀─────┤ (inline query) │ │ | 80 | │ │ - upload-pk │◀─────┤ (inline query) │ │ |
| 81 | │ │ - receive-pk │ auth │ - LMDB/NostrDB │ │ | 81 | │ │ - receive-pk │ auth │ - LMDB/Memory │ │ |
| 82 | │ │ + inline │ check│ - WebSocket │ │ | 82 | │ │ + inline │ check│ - WebSocket │ │ |
| 83 | │ │ validation │ │ - NIP-11 endpoint │ │ | 83 | │ │ validation │ │ - NIP-11 endpoint │ │ |
| 84 | │ └──────┬───────┘ └──────────┬─────────┘ │ | 84 | │ └──────┬───────┘ └──────────┬─────────┘ │ |
| @@ -100,7 +100,7 @@ This document compares ngit-grasp (this project) with ngit-relay (the reference | |||
| 100 | │ │ | 100 | │ │ |
| 101 | │ ┌──────────────────────────────────────────────────┐ │ | 101 | │ ┌──────────────────────────────────────────────────┐ │ |
| 102 | │ │ Shared State (Arc<T>) │ │ | 102 | │ │ Shared State (Arc<T>) │ │ |
| 103 | │ │ - Database (LMDB/NostrDB/Memory) │ │ | 103 | │ │ - Database (LMDB/Memory) │ │ |
| 104 | │ │ - Purgatory (DashMap - concurrent queue) │ │ | 104 | │ │ - Purgatory (DashMap - concurrent queue) │ │ |
| 105 | │ │ - Metrics (Prometheus) │ │ | 105 | │ │ - Metrics (Prometheus) │ │ |
| 106 | │ └──────────────────────────────────────────────────┘ │ | 106 | │ └──────────────────────────────────────────────────┘ │ |
| @@ -161,7 +161,7 @@ This is why ngit-grasp has ~13x more code - the majority is implementing GRASP-0 | |||
| 161 | | Feature | ngit-relay | ngit-grasp | | 161 | | Feature | ngit-relay | ngit-grasp | |
| 162 | |---------|-----------|-----------| | 162 | |---------|-----------|-----------| |
| 163 | | **Implementation** | Khatru (Go library) | nostr-relay-builder (Rust library) | | 163 | | **Implementation** | Khatru (Go library) | nostr-relay-builder (Rust library) | |
| 164 | | **Database** | Badger (Go KV store) | LMDB or NostrDB (Rust) | | 164 | | **Database** | Badger (Go KV store) | LMDB (Rust) | |
| 165 | | **Process** | Separate process on :3334 | Integrated (same binary) | | 165 | | **Process** | Separate process on :3334 | Integrated (same binary) | |
| 166 | | **Policies** | Go functions in `policies.go` | Rust traits (modular sub-policies) | | 166 | | **Policies** | Go functions in `policies.go` | Rust traits (modular sub-policies) | |
| 167 | | **Event Validation** | Single function with branches | 4 separate policy modules | | 167 | | **Event Validation** | Single function with branches | 4 separate policy modules | |
| @@ -287,7 +287,7 @@ For users of ngit-relay, migration to ngit-grasp involves: | |||
| 287 | 287 | ||
| 288 | ### Data Migration | 288 | ### Data Migration |
| 289 | 289 | ||
| 290 | 1. **Events**: Export from Badger → Import to LMDB/NostrDB | 290 | 1. **Events**: Export from Badger → Import to LMDB |
| 291 | - No direct migration tool yet (would need to be built) | 291 | - No direct migration tool yet (would need to be built) |
| 292 | - Alternative: Use proactive sync to re-fetch from other relays | 292 | - Alternative: Use proactive sync to re-fetch from other relays |
| 293 | 2. **Git Repositories**: Direct copy (same structure) | 293 | 2. **Git Repositories**: Direct copy (same structure) |