Skip to content
Nuvyntra Labs

Message broker

NuvexaMQ

Durable message broker — one append-only log, queues, exchanges, and replayable streams

Broker 0.1.1

Single-node durable message broker. Install the server package, then publish and consume through the NuvexaMQ data port from the language samples. Virtual hosts, users, permissions, exchanges, queues, bindings, and policies follow the RabbitMQ model. The bytes on the socket are NuvexaMQ frames.

Install

Production does not use the src folder. Install the package for the machine. It installs the broker and the desktop app, puts nuvexamq on PATH, and starts the broker on boot. CI on main keeps the packages as workflow artifacts for 14 days. The tag v0.1.1 publishes them on the GitHub Release.

SystemPackageServiceData directory
WindowsNuvexaMQ-<version>-win-x64.msi or win-arm64.msiWindows service NuvexaMQC:\ProgramData\NuvexaMQ\data
macOSNuvexaMQ-<version>-osx-arm64.pkg or osx-x64.pkglaunchd com.nuventra.nuvexamq/Library/Application Support/NuvexaMQ/data
Linuxnuvexamq_<version>_amd64.deb or _arm64.deb, and the matching .rpmsystemd nuvexamq/var/lib/nuvexamq
nuvexamq
nuvexamq -v
nuvexamq-desktop

Listeners

A package install and the desktop app both use these defaults. Sign in to the console as guest / guest. That account is accepted only from this machine. Open http://127.0.0.1:5763/.

  • 5761 — Data. Clients publish, fetch, and ack here.
  • 5762 — Health and metrics. GET /health and GET /metrics.
  • 5763 — Management console and HTTP API.
  • 5764 — The same console and API over HTTPS.

Overview

NuvexaMQ 0.1.1 stores every message in one append-only log. A queue, a pub/sub fan-out, and a replayable stream are three ways to read that log. An acknowledged publish is on disk. The installer ships the broker and the desktop app for Windows, macOS, and Linux. Applications open TCP 5761 and exchange NuvexaMQ frames. The server, engine, and protocol projects are not NuGet packages.

Publish and consume

nuvexamq stream add --name orders --filter orders.>
nuvexamq pub --subject orders.created --body hello --key order-18
nuvexamq consume --stream orders --durable billing --count 1

orders.> matches orders.created and orders.created.eu. * is one token. > is the rest of the subject. A second durable consumer named warehouse on the same stream is fan-out. A second connection that uses the durable name billing is a competing consumer. Point an application at NUVEXA_HOST and NUVEXA_PORT (defaults 127.0.0.1 and 5761).

Capabilities

  • One append-only log. Streams, queues, and exchange bindings are three ways to write or read it.
  • Length-prefixed TCP frames on port 5761. Hello, publish, fetch, ack, nack, exchanges, queues, and bindings.
  • Virtual hosts, users, configure/write/read permissions, policies, TTL, max length, and dead-letter exchanges.
  • Management console and HTTP API on 5763, HTTPS on 5764, health and Prometheus text on 5762.
  • Installer packages for Windows (MSI), macOS (PKG), and Linux (DEB and RPM), plus a desktop window that starts and stops the broker.
  • Client programs for C#, JavaScript, TypeScript, Python, Java, Go, and the other languages under samples/clients.

Documentation

Version 0.1.1. Author Niladri Prasad Padhy / Nuventra. License MIT. These pages are the broker manuals: the technical reference, the admin panel, client integration, the language samples, and the benchmark.

Discussion

Comment on NuvexaMQ. The thread lives on this component's GitHub repository (nuvyntralabs/NuvexaMQ). Sign in with GitHub — Giscus uses Discussions, Utterances uses Issues.