Popularity
3.4
Stable
Activity
0.0
Stable
54
4
12
Programming language: Go
License: MIT License
Tags:
Messaging
Latest version: v0.2.0
event alternatives and similar packages
Based on the "Messaging" category.
Alternatively, view event 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. -
mangos
mangos is a pure Golang implementation of nanomsg's "Scalablilty Protocols" -
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. -
go-events
:mega: Pure nodejs EventEmmiter for the Go Programming Language. -
drone-line
Sending line notifications using a binary, docker or Drone CI. -
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
WorkOS - The modern identity platform for B2B SaaS
The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Promo
workos.com
Do you think we are missing an alternative of event or a related project?
Popular Comparisons
README
Event
This is package implements pattern-observer
Fast example
import (
"github.com/agoalofalife/event"
)
func main() {
// create struct
e := event.New()
// subscriber
e.Add("push.email", func(text string){
// some logic
}, "text")
// init event
e.Fire("push.email") // or e.Go("push.email")
}
let us consider an example:
- You must first create the structure
- Next, the first argument declares the name of the event (string type), second argument executes when the event occurs, the third argument is passed a list of arguments, which are substituted in the parameters of the second argument.
- In the end you need to run the event. There are two methods available "Go" and his alias "Fire"
The subscriber function method
type Email struct {
count int
}
func (e *Email) Push() {
e.count += 1
fmt.Printf("Push email again, count %d \n", e.count)
}
func main() {
e := event.New()
email := new(Email)
e.Add(email, email.Push)
e.Fire(email)
e.Fire(email)
}
// output
// Push email again, count 1
// Push email again, count 2
Bench
// create struct and add new event handler
BenchmarkAdd-8 1000000 1482 ns/op
// create struct and add new event handler and N run this handler
BenchmarkGo-8 5000000 339 ns/op
- In this example we sign the event method structure
Read more information in examples :+1: