upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/docs/explanation/comparison.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/explanation/comparison.md')
-rw-r--r--docs/explanation/comparison.md10
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
2901. **Events**: Export from Badger → Import to LMDB/NostrDB 2901. **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
2932. **Git Repositories**: Direct copy (same structure) 2932. **Git Repositories**: Direct copy (same structure)