Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. mangos

mangos

Apache-2.0Gov3.4.2

A pure Go implementation of the nanomsg Scalability Protocols (SP) messaging system, supporting multiple transport and topology patterns.

GitHubGitHub
753 stars81 forks0 contributors

What is mangos?

Mangos is a pure Go implementation of the Scalability Protocols (SP) messaging system, originally developed as nanomsg. It provides a library for building high-performance, distributed applications using various messaging patterns like publish-subscribe, request-reply, and pipeline. The project solves the need for a lightweight, interoperable messaging layer in Go applications without relying on external C dependencies.

Target Audience

Go developers building distributed systems, microservices, or real-time applications that require reliable, low-latency inter-process communication. It's also suitable for those migrating from or integrating with existing nanomsg or NNG-based systems.

Value Proposition

Developers choose Mangos for its pure Go implementation, which simplifies deployment and avoids CGO complications, while maintaining full interoperability with the nanomsg/NNG ecosystem. Its extensible design and support for multiple transports and protocols offer flexibility without sacrificing performance.

Overview

mangos is a pure Golang implementation of nanomsg's "Scalablilty Protocols"

Use Cases

Best For

  • Building microservices that require request-reply or publish-subscribe communication
  • Implementing real-time data pipelines with push-pull patterns
  • Developing distributed systems that need interoperability with existing nanomsg/NNG services
  • Creating Go applications that require IPC or WebSocket-based messaging
  • Prototyping or production systems needing multiple transport options (TCP, TLS, IPC)
  • Educational projects exploring scalable messaging patterns in Go

Not Ideal For

  • Projects requiring ZeroTier transport for decentralized mesh networking
  • Systems that depend on the PAIRv1 protocol for legacy nanomsg compatibility
  • Teams needing out-of-the-box multi-language client SDKs beyond Go
  • Applications preferring managed, cloud-native messaging services with automatic scaling

Pros & Cons

Pros

Pure Go Simplicity

No CGO dependencies, leveraging Go's standard library and concurrency model for easy deployment and integration, as highlighted in the README's emphasis on pure Go implementation.

Protocol Diversity

Supports seven messaging patterns including Req/Rep and Pub/Sub, enabling flexible distributed system design, with experimental Star protocol for extended use cases.

Transport Flexibility

Works over TCP, IPC, WebSocket, and TLS transports, adapting to various network environments from local to web-based, as listed in the key features.

Ecosystem Interoperability

Designed to interoperate with nanomsg and NNG, verified with tools like nanocat, facilitating cross-platform communication without vendor lock-in.

Cons

Incomplete Feature Parity

Lacks support for ZeroTier transport and PAIRv1 protocol compared to NNG, as admitted in the README, limiting full compatibility with the SP ecosystem.

Breaking Changes in Updates

Version 3 introduced import path changes, and older versions are not maintained, potentially complicating upgrades and migration for existing projects.

Sparse Higher-Level Tooling

As a low-level library, it doesn't include built-in features like service discovery or monitoring, requiring additional development for production-ready systems.

Frequently Asked Questions

Quick Stats

Stars753
Forks81
Contributors0
Open Issues25
Last commit15 days ago
CreatedSince 2018

Tags

#tcp#message#queue#distributed-systems#websocket#ipc#scalability-protocols#messaging#pubsub#pub-sub#go

Built With

G
Go

Included in

Go169.1k
Auto-fetched 1 day ago

Related Projects

AsynqAsynq

Simple, reliable, and efficient distributed task queue in Go

Stars13,225
Forks927
Last commit20 days ago
saramasarama

Sarama is a Go library for Apache Kafka.

Stars12,471
Forks1,842
Last commit1 day ago
CentrifugoCentrifugo

Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably, socket.io, Phoenix.PubSub, SignalR. Set up once and forever.

Stars10,229
Forks697
Last commit2 days ago
WatermillWatermill

Building event-driven applications the easy way in Go.

Stars9,687
Forks495
Last commit14 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