Canonical Encode
IRC
150,000 ns 186x slower est150,000 ns · 186x slower
XMPP
800,000 ns 991x slower est800,000 ns · 991x slower
Matrix
1,100 ns 1.4x slower1,100 ns · 1.4x slower · Matrix event canonical JSON (ruma)
Nostr
729 ns parity729 ns · parity · Nostr event JSON serialization
Envelope Verify
IRC
50,000 ns 2.0x slower est50,000 ns · 2.0x slower
XMPP
300,000 ns 12x slower est300,000 ns · 12x slower
Matrix
31,517 ns 1.3x slower31,517 ns · 1.3x slower · Matrix event signature verify (ruma)
Nostr
28,818 ns 1.2x slower28,818 ns · 1.2x slower · Nostr event id + Schnorr verify
Signal has no per-message signatures.
Parse Envelope
IRC
20,000 ns 16x slower est20,000 ns · 16x slower
XMPP
150,000 ns 117x slower est150,000 ns · 117x slower
Matrix
758 ns 1.7x faster758 ns · 1.7x faster · Matrix canonical JSON parse
Signal
217 ns 5.9x faster217 ns · 5.9x faster · Signal protobuf message parse
Nostr
495 ns 2.6x faster495 ns · 2.6x faster · Nostr event JSON parse
Event Build
IRC
100,000 ns 8.8x slower est100,000 ns · 8.8x slower
XMPP
500,000 ns 44x slower est500,000 ns · 44x slower
Matrix
17,731 ns 1.6x slower17,731 ns · 1.6x slower · Matrix event sign (canonical JSON + ed25519)
Nostr
48,142 ns 4.3x slower48,142 ns · 4.3x slower · Nostr event id + Schnorr sign
Signal has no signed-event build step.
Pool Query (1k)
IRC
500,000 ns 51x slower est500,000 ns · 51x slower
XMPP
2,000,000 ns 204x slower est2,000,000 ns · 204x slower
Matrix
8,000,000 ns 816x slower est8,000,000 ns · 816x slower · reference estimate
Crypto (ed25519)
IRC
45,000 ns 1.8x slower est45,000 ns · 1.8x slower
XMPP
200,000 ns 8.1x slower est200,000 ns · 8.1x slower
Matrix
30,597 ns 1.2x slower30,597 ns · 1.2x slower · Ed25519 verify (ed25519-dalek, Matrix stack)
Nostr uses Schnorr (secp256k1); Signal is not ed25519.
Private Message (1:1)
Encrypt
Signal
9,290 ns 2.6x slower9,290 ns · 2.6x slower · Double Ratchet encrypt
Matrix
15,148 ns 4.2x slower15,148 ns · 4.2x slower · Olm encrypt (vodozemac)
Nostr
3,706 ns parity3,706 ns · parity · NIP-44 v2 encrypt
Decrypt
Signal
92,059 ns 31x slower92,059 ns · 31x slower · Double Ratchet decrypt
Matrix
3,297 ns 1.1x slower3,297 ns · 1.1x slower · Olm decrypt (vodozemac)
Nostr
3,844 ns 1.3x slower3,844 ns · 1.3x slower · NIP-44 v2 decrypt
First message incl. setup, send → receive: Signal 303.4 µs → 278.1 µs · Olm 128.7 µs → 105.4 µs · Toloo 26.1 µs → 25.5 µs · Nostr 31.7 µs → 31.9 µs