An extensible pub/sub messaging server for edge applications that delegates authentication and business logic to external modulators.
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.
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.
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.
An extensible message broker for edge applications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
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.
Built with asynchronous Rust and io_uring, it delivers low-latency message routing optimized for edge scenarios, with benchmark results available in the documentation.
Supports TLS/SSL with automatic certificate generation for development, ensuring secure connections by default without additional setup.
Enables per-channel access control and configuration, allowing precise management of communication paths for complex applications.
Currently at version 0.5.0 in alpha, with APIs subject to breaking changes before 1.0.0, making it risky for production deployments.
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.
Requires developing and maintaining an external modulator service for even basic custom logic, adding complexity compared to integrated brokers with native plugins.
Narwhal is an open-source alternative to the following products:
VerneMQ is an open-source, scalable MQTT message broker designed for IoT applications that supports clustering and high availability deployments.
Mosquitto is an open-source message broker that implements the MQTT protocol, commonly used for IoT applications and lightweight machine-to-machine communication.