Comparison
Weave & Nostr.
Nostr and Weave's WOVEN both define "signed events transmitted between peers." Nostr does it through relays; Weave does it through a Rust workspace with a fuller application stack.
| Dimension | Nostr | Weave |
|---|---|---|
| Topology | Clients + public relays | Direct peer-to-peer over weave-swarm + DHT |
| Event model | Kinds + tags | WOVEN events + spaces + filters + references |
| Identity | Bare keypairs (npub/nsec) | Identity adapters: Ed25519, Did, custom |
| Storage primitive | Relays cache events | Trace (per-writer signed log) + Lens (views) |
| Agent surfaces | Not first-class | First-class (/llms.txt, /skill.md, /.well-known/agent.json) |
| Out-of-app primitives | Limited (Blossom for media) | Locus drives, Nexus convergence, Trace Vault |
| Implementation language | Many — JS, Rust, Go, Swift | Rust workspace; bindings can be added |
Pick Nostr
Pick Nostr if you want minimal surface, social/feed-shaped apps, and the relay topology is a feature, not a bug.
nostr.com →Pick Weave
Pick Weave if you want signed events as one piece of a bigger Rust application stack — alongside drives, views, multi-writer convergence, and agent context.
All primitives →Where they meet, where they diverge.
- Nostr is excellent at being small and replay-friendly through relays.
- Weave assumes you might not want a relay topology, and you might want to compose the same primitives into agent fabrics, drives, or knowledge graphs — not only social.