Warning
This package is now DEPRECATED, as I no longer have the time or interest to maintain it. However, it should be still functional, although not ready for production.
This is a work in progress, the project is vastly incomplete and not ready for use in production.
TODO:
- ✅
Standalone Websocket Server and Client - ✅
Full support for Rooms - Pub/Sub and Broadcasting
- ✅
NATS based Horizontal Scaling - Properly deal with Backpressure and error cases
- Benchmark Suite
- Documentation
- Write Unit Tests (esp. check integrity of sent & received messages with buffer reuse enabled)
Arian runs on native µWebSockets, which by itself is about 10x faster than Socket.IO - the most widely used websocket library.
The Arian Server and Client communicate in a binary protocol with almost no overhead, through the fastest implementation of MessagePack for Node.js.
Although a single server can handle several thousands of concurrent connections, Arian lets you seamlessly scale horizontally by simply adding more servers.
Hundreds of nodes can work together in tandem using NATS as a message broker, which is completely transparent to the higher level client and server APIs.
Spinning up more servers will linearly increase throughput and connection capacity with no changes in code required.
Arian comes with full support for Rooms, Custom events, Pub/Sub and Broadcasting, while maintaining minimal memory overhead.