mangos alternatives and similar packages
Based on the "Messaging" category.
Alternatively, view mangos alternatives based on common mentions on social networks and blogs.
-
sarama
Sarama is a Go library for Apache Kafka. [Moved to: https://github.com/IBM/sarama] -
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever. -
machinery
Machinery is an asynchronous task queue/job queue based on distributed message passing. -
NATS Go Client
Golang client for NATS, the cloud native messaging system. -
Confluent Kafka Golang Client
Confluent's Apache Kafka Golang client -
Mercure
🪽 An open, easy, fast, reliable and battery-efficient solution for real-time communications -
APNs2
⚡ HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol. -
Uniqush-Push
Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices. -
amqp
An AMQP 0-9-1 Go client maintained by the RabbitMQ team. Originally by @streadway: `streadway/amqp` -
Chanify
Chanify is a safe and simple notification tools. This repository is command line tools for Chanify. -
PingMe
PingMe is a CLI which provides the ability to send messages or alerts to multiple messaging platforms & email. -
emitter
Emits events in Go way, with wildcard, predicates, cancellation possibilities and many other good wins -
Bus
🔊Minimalist message bus implementation for internal communication with zero-allocation magic on Emit -
redisqueue
redisqueue provides a producer and consumer of a queue that uses Redis streams -
go-mq
Declare AMQP entities like queues, producers, and consumers in a declarative way. Can be used to work with RabbitMQ. -
drone-line
Sending line notifications using a binary, docker or Drone CI. -
go-events
:mega: Pure nodejs EventEmmiter for the Go Programming Language. -
Ratus
Ratus is a RESTful asynchronous task queue server. It translated concepts of distributed task queues into a set of resources that conform to REST principles and provides a consistent HTTP API for various backends. -
RapidMQ
RapidMQ is a pure, extremely productive, lightweight and reliable library for managing of the local messages queue -
go-notify
Package notify provides an implementation of the Gnome DBus Notifications Specification. -
structured pubsub
Publish and subscribe functionality within a single process in Go. -
go-longpoll
Parked: PubSub queuing with long-polling subscribers (not bound to http) -
jazz
Abstraction layer for simple rabbitMQ connection, messaging and administration
InfluxDB - Power Real-Time Data Analytics at Scale
Do you think we are missing an alternative of mangos or a related project?
Popular Comparisons
README
mangos™ v3
Please see [here](UKRAINE.md) for an important message for the people of Russia.
Mangos™ is an implementation in pure Go of the SP
(Scalability Protocols
) messaging system.
These are colloquially known as nanomsg
.
NOTE: The import path has changed! Please change any references to
go.nanomsg.org/mangos/v3
. The old v2 imports will still work for old applications, provided that a sufficiently modern version of Go is used. However, no further work will be done on earlier versions. Earlier versions will still inter-operate with this version, except that within the same process theinproc
transport can only be used by consumers using the same version of mangos.
The modern C implementation of the SP protocols is available as NNG™.
The original implementation of the SP protocols is available as nanomsg™.
Generally (modulo a few caveats) all of these implementations can inter-operate.
The design is intended to make it easy to add new transports,
as well as new topologies (protocols
in SP parlance.)
At present, all the Req/Rep, Pub/Sub, Pair, Bus, Push/Pull, and Surveyor/Respondent patterns are supported. This project also supports an experimental protocol called Star.
Supported transports include TCP, inproc, IPC, WebSocket, WebSocket/TLS and TLS.
Basic interoperability with nanomsg and NNG has been verified (you can do
so yourself with nanocat
and macat
) for all protocols and transports
that NNG and nanomsg support, except for the ZeroTier transport and the PAIRv1
protocol, which are only supported in NNG at this time.
There are a number of projects that use these products together.
Documentation
For API documentation, see https://pkg.go.dev/go.nanomsg.org/mangos/v3.
Testing
This package supports internal self tests, which can be run in the idiomatic Go way. (Note that most of the tests are in a test subdirectory.)
$ go test go.nanomsg.org/mangos/v3/...
There are also internal benchmarks available:
$ go test -bench=. go.nanomsg.org/mangos/v3/test
Commercial Support
Staysail Systems, Inc. offers commercial support for mangos.
Examples
Some examples are posted in the directories under examples/
in this project.
These examples are rewrites (in Go) of Tim Dysinger's Getting Started with Nanomsg.
Running go doc
in the example directories will yield information about how
to run each example program.
Enjoy!
Copyright 2021 The Mangos Authors
mangos™, Nanomsg™ and NNG™ are trademarks of Garrett D'Amore.
*Note that all licence references and agreements mentioned in the mangos README section above
are relevant to that project's source code only.