Popularity
3.1
Growing
Activity
0.0
Stable
37
4
7

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.

Do you think we are missing an alternative of event or a related project?

Add another 'Messaging' Package

README

Event

Build Status codecov Go Report Card GoDoc

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: