Skip to content

bonnefoa/go-zeromq

Repository files navigation

go-zeromq

go-zeromq is a binding go for zeromq.

This binding implements zero-copy for better performance. One downside is that the data is not managed by the garbage collector, you have to explicitly free the message once it is no more used.

Basic Usage

Import go-zeromq:

import zmq "github.com/bonnefoa/go-zeromq"

Create a new Context:

ctx, err := zmq.NewContext()
if err != nil {
    log.Fatal(err)
}

Create a new Socket and bind it:

soc, err := ctx.NewSocket(zmq.Rep)
if err != nil {
    log.Fatal(err)
}
err = soc.Bind("tcp://*:4444")
if err != nil {
    log.Fatal(err)
}

Receive and send messages:

for {
msg, err := soc.Recv(0)
if err != nil {
    return
}
err = soc.Send(msg.Data, 0)
if err != nil {
    return
}
// Message needs to be close after use
// to avoid memory leak
msg.Close()
}

About

Binding go for zeromq

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages