Skip to content

openpeeps/whiz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


WhizMQ - A message queue library implementing ZMTP 3.0 in Nim.
Built on top of PowPow event library

nimble install whiz

API reference
Github Actions Github Actions

😍 Key Features

  • ZMTP 3.0 wire protocol, full greeting, framing, and command handling
  • Socket patterns: PAIR, PUB/SUB, REQ/REP, PUSH/PULL, File Transfer
  • Security mechanisms:
    • NULL: no authentication (plaintext)
    • PLAIN: username/password authentication with ZAP callback
    • CURVE: X25519 + XChaCha20-Poly1305 AEAD encryption and mutual authentication
  • Transport TCP and IPC (Unix domain sockets)
  • Built on PowPow event notification library in Nim

Note

CURVE requires Monocypher (via the e2ee package). Install it with your system package manager (brew install monocypher, apt install libmonocypher-dev, etc.) or build from source.

🗺 Roadmap

  • ZMTP 3.0 wire protocol (greeting, framing, commands)
  • PAIR, PUB/SUB, REQ/REP, PUSH/PULL socket patterns
  • File transfer over ZMTP
  • PLAIN security mechanism + ZAP auth callbacks
  • CURVE security mechanism (X25519 + AEAD)
  • RADIO/DISH (dgram) socket pattern
  • CLIENT/SERVER (stream) socket pattern
  • CURVE vouch (Ed25519 signature in HELLO for key continuity)
  • TLS/DTLS transport
  • GSSAPI / Kerberos mechanism
  • WebSocket transport (RFC 7692)
  • Formal ZMTP conformance tests
  • Performance benchmarks vs ØMQ

Examples

...

Benchmarks

Note

Benchmark results are not consistent and may show different results across runs and environments.

[Suite] bench_zmtp
  bench_pair_latency  N=5000  size=1  98626us  50696/s
  [OK] bench_pair_latency
  bench_pair_throughput  N=10000  size=512  23014us  434518/s
  [OK] bench_pair_throughput
  bench_pubsub_1sub  N=10000  size=512  19494us  512978/s
  [OK] bench_pubsub_1sub
  bench_pubsub_2sub  N=5000  size=256  14203us  704076/s
  [OK] bench_pubsub_2sub
  bench_reqrep  N=5000  size=128  143962us  34731/s
  [OK] bench_reqrep
  bench_sizes_pair  N=2000  size=64  6377us  313627/s
  bench_sizes_pair  N=2000  size=1024  8975us  222841/s
  bench_sizes_pair  N=2000  size=65536  575434us  3475/s
  [OK] bench_sizes_pair
  bench_pushpull_throughput  N=10000  size=512  110386us  90591/s
  [OK] bench_pushpull_throughput
  bench_pushpull_1worker  N=10000  size=128  11950us  836820/s
  [OK] bench_pushpull_1worker
  bench_pushpull_3workers  N=5000  size=128  8454us  591436/s
  [OK] bench_pushpull_3workers

❤ Contributions & Support

OpenCode Switch to Open-Source LLMs via OpenCode GO, choosing from a variety of powerful models such as DeepSeek, Qwen, Kimi, GLM-5, MiniMax, MiMo. 🍕 Use our referral link to get started!

🎩 License

MIT license. Made by Humans from OpenPeeps.
Copyright OpenPeeps & Contributors — All rights reserved.

About

WhizMQ ⚡️ A message queue library implementing ZMTP 3.0 in Nim. Built on top of PowPow event library

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Generated from openpeeps/pistachio