Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. Narwhal

Narwhal

BSD-3-ClauseRustnarwhal-0.7.0

An extensible pub/sub messaging server for edge applications that delegates authentication and business logic to external modulators.

GitHubGitHub
135 stars5 forks0 contributors

What is Narwhal?

Narwhal is an extensible pub/sub messaging server built for edge applications that need real-time communication. It solves the problem of choosing between overly complex XMPP servers and rigid MQTT brokers by providing a lightweight core that delegates authentication, authorization, and business logic to external services called modulators. This allows developers to implement custom application logic without modifying the messaging server itself.

Target Audience

Developers building real-time features like chat, notifications, or device communication for mobile, desktop, or IoT applications who need a flexible, high-performance messaging backend. It's particularly suitable for teams wanting to avoid the complexity of XMPP or the limitations of standard MQTT brokers.

Value Proposition

Developers choose Narwhal because it offers the performance of an edge-optimized broker with the flexibility to implement custom application logic through external modulators. Unlike traditional brokers that require complex plugins or sidecar services, Narwhal cleanly separates messaging routing from business logic, making it easier to adapt to specific use cases while maintaining high throughput.

Overview

An extensible message broker for edge applications

Use Cases

Best For

  • Adding real-time chat features to mobile or web applications with custom authentication
  • Building IoT device communication systems that require message validation and transformation
  • Implementing game server backends that need low-latency pub/sub with custom game logic
  • Creating notification systems for edge applications with complex permission rules
  • Developing collaborative tools that require presence systems and message moderation
  • Building bridges between messaging systems and external APIs or databases

Not Ideal For

  • Production systems requiring stable, long-term APIs without breaking changes
  • Simple pub/sub use cases where MQTT's lightweight protocol suffices without custom logic
  • Teams unable to develop or maintain external modulator services for core functions like authentication

Pros & Cons

Pros

Modular Extensibility

Narwhal delegates authentication, authorization, and business logic to external modulators, keeping the core server lightweight and adaptable to diverse use cases, as highlighted in the modulator architecture.

High Throughput Performance

Built with asynchronous Rust and io_uring, it delivers low-latency message routing optimized for edge scenarios, with benchmark results available in the documentation.

Built-in Security

Supports TLS/SSL with automatic certificate generation for development, ensuring secure connections by default without additional setup.

Fine-Grained Channel Control

Enables per-channel access control and configuration, allowing precise management of communication paths for complex applications.

Cons

Unstable Alpha Status

Currently at version 0.5.0 in alpha, with APIs subject to breaking changes before 1.0.0, making it risky for production deployments.

Missing Core Features

Lacks built-in message persistence, enhanced observability, and additional transports like WebSocket, which are only planned in the roadmap, limiting out-of-the-box functionality.

Modulator Setup Overhead

Requires developing and maintaining an external modulator service for even basic custom logic, adding complexity compared to integrated brokers with native plugins.

Open Source Alternative To

Narwhal is an open-source alternative to the following products:

e
ejabberd
v
vernemq

VerneMQ is an open-source, scalable MQTT message broker designed for IoT applications that supports clustering and high availability deployments.

Mosquitto
Mosquitto

Mosquitto is an open-source message broker that implements the MQTT protocol, commonly used for IoT applications and lightweight machine-to-machine communication.

Frequently Asked Questions

Quick Stats

Stars135
Forks5
Contributors0
Open Issues1
Last commit2 months ago
CreatedSince 2025

Tags

#chat#iot#tcp#async#tls#extensible-architecture#asynchronous-io#messaging#edge#pubsub#pub-sub#edge-computing#rust#protocol#real-time

Built With

i
io_uring
O
OpenSSL
T
TOML
R
Rust

Included in

Rust56.6k
Auto-fetched 3 hours ago

Related Projects

RobustMQRobustMQ

Communication infrastructure for the AI era — one binary, one broker, one storage layer, any protocol

Stars1,699
Forks244
Last commit2 days ago
Rocketmq-RustRocketmq-Rust

🚀Apache RocketMQ build in Rust🦀. Faster, safer, and with lower memory usage. ⭐ Star to support our work❤️!

Stars1,494
Forks244
Last commit8 hours ago
RmqttRmqtt

MQTT Server/MQTT Broker - Scalable Distributed MQTT Message Broker for IoT in the 5G Era

Stars980
Forks121
Last commit11 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub