upleb.uk

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

summaryrefslogtreecommitdiff
path: root/Cargo.toml
diff options
context:
space:
mode:
authorYour Name <you@example.com>2026-05-26 16:11:05 +0530
committerYour Name <you@example.com>2026-05-26 16:11:05 +0530
commit8816a192c95cf539b65975469a2d61aed46f0414 (patch)
tree7590318244a56fabbfa6919ef6d0fab5be529134 /Cargo.toml
feat: initial implementation of grasp-mirror daemon
GRASP mirror daemon that discovers repos from watched npubs and mirrors git data + Nostr events across all known GRASP servers for redundancy. Features: - Configurable npub watch list via .env (MIRROR_NPUBS) - TOML config for GRASP server list, index relays, storage paths - NIP-11 verification of GRASP servers on startup - Discovery of repos via kind:30617 announcements on index relays - Git mirroring (bare clone + push --mirror) to missing GRASP servers - Nostr event forwarding to all GRASP server embedded relays - SQLite state tracking for sync status and event dedup - Optional signing key for updating announcements with new clone URLs - CLI subcommands: daemon, status, verify, mirror-once Architecture: config.rs - TOML + .env config loading db.rs - SQLite state tracking health.rs - NIP-11 GRASP server verification discovery.rs - Relay subscription, kind:30617 parsing git_mirror.rs - Bare clone + push to GRASP servers nostr_mirror.rs - Event forwarding to all GRASP relays signing.rs - Optional announcement updates main.rs - CLI entry point, daemon loop
Diffstat (limited to 'Cargo.toml')
-rw-r--r--Cargo.toml24
1 files changed, 24 insertions, 0 deletions
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000..a093dbb
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,24 @@
1[package]
2name = "grasp-mirror"
3version = "0.1.0"
4edition = "2021"
5description = "GRASP mirror daemon — mirrors git data and Nostr events across GRASP servers"
6license = "MIT"
7
8[dependencies]
9nostr-sdk = "0.39"
10nostr = "0.39"
11tokio = { version = "1", features = ["full"] }
12sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] }
13toml = "0.8"
14serde = { version = "1", features = ["derive"] }
15serde_json = "1"
16tracing = "0.1"
17tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
18reqwest = { version = "0.12", features = ["json"] }
19dotenvy = "0.15"
20anyhow = "1"
21git2 = "0.20"
22hex = "0.4"
23clap = { version = "4", features = ["derive", "env"] }
24dirs = "6"