Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. n2o

n2o

NOASSERTIONErlang7.11.1

Embeddable message protocol loop library for WebSocket, HTTP, MQTT, and TCP servers with unified API.

Visit WebsiteGitHubGitHub
1.3k stars167 forks0 contributors

What is n2o?

N2O is an embeddable message protocol loop library that provides a unified foundation for building distributed applications over WebSocket, HTTP, MQTT, and TCP. It handles core concerns like process management, virtual node rings, sessions, and frame encoding, enabling high‑performance protocol relay with minimal code.

Target Audience

Erlang/Elixir developers building real‑time, distributed systems such as chat applications, IoT platforms, or enterprise backends that require WebSocket, MQTT, or TCP communication.

Value Proposition

Developers choose N2O for its lightweight, embeddable design, extensive protocol support, and unified API that simplifies integrating multiple messaging and caching services while maintaining high performance and clarity in distributed architectures.

Overview

⭕ N2O: Distributed WebSocket Application Server ISO 20922

Use Cases

Best For

  • Building real‑time chat applications with WebSocket or MQTT backends
  • Creating IoT platforms that require MQTT and TCP protocol handling
  • Developing enterprise systems with BPMN 2.0 business process automation
  • Implementing distributed microservices with unified message queuing and caching
  • Embedding a lightweight protocol server into existing Erlang/Elixir applications
  • Setting up high‑performance API gateways with WebSocket and REST support

Not Ideal For

  • Projects built with non-Erlang/Elixir stacks
  • Teams needing out-of-the-box UI components or full-stack frameworks
  • Simple REST APIs without real-time WebSocket or MQTT requirements
  • Environments prioritizing extensive third-party integrations and a large community ecosystem

Pros & Cons

Pros

Minimal Codebase

With only 700 lines of Erlang and 500 lines of JavaScript, N2O provides a lightweight foundation for protocol handling, reducing bloat and maintenance overhead.

Extensible Protocol Support

Includes optional protocols like FTP for file transfer and BPE for BPMN 2.0 integration, allowing customization for diverse real-time and enterprise use cases.

Unified Service API

Offers consistent interfaces for formatters (BERT, JSON), session management, and encryption, with support for multiple pub-sub backends like GPROC and SYN, simplifying integration.

Multi-Host Compatibility

Runs on various Erlang/Elixir servers including COWBOY, BANDIT, and EMQ, making it adaptable to different deployment environments without vendor lock-in.

Cons

Erlang-Centric Design

Tightly coupled to the Erlang/Elixir ecosystem, making it inaccessible for teams using other programming languages and limiting its broader adoption.

Documentation Fragmentation

Key documentation is hosted on external sites (e.g., ws.n2o.dev), leading to a disjointed learning experience and increased effort for troubleshooting and setup.

Modular Setup Complexity

Being embeddable and modular, configuring N2O involves setting up multiple components and protocols, which can be cumbersome for rapid prototyping or simple projects.

Frequently Asked Questions

Quick Stats

Stars1,340
Forks167
Contributors0
Open Issues1
Last commit4 months ago
CreatedSince 2013

Tags

#tcp#message-queue#mqtt#tcp-server#distributed-systems#protocol-library#websocket#bert#erlang#bpmn#embedded-server#real-time#websockets#udp

Built With

M
Mnesia
B
BERT
J
JavaScript
E
Erlang
R
RocksDB
R
Redis
C
Cowboy

Links & Resources

Website

Included in

Elixir13.1kErlang1.7k
Auto-fetched 21 hours ago

Related Projects

phoenixphoenix

Peace of mind from prototype to production

Stars23,173
Forks3,114
Last commit1 day ago
CowboyCowboy

Small, fast, modern HTTP server for Erlang/OTP.

Stars7,521
Forks1,173
Last commit7 days ago
Ash FrameworkAsh Framework

A declarative, extensible framework for building Elixir applications.

Stars2,515
Forks450
Last commit2 days ago
mochiwebmochiweb

MochiWeb is an Erlang library for building lightweight HTTP servers.

Stars1,889
Forks459
Last commit1 month 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