Public | Automated Build

Last pushed: 11 days ago
Short Description
Short description is empty for this repo.
Full Description


This is a Golang port of Zyre 2.0, an open-source framework for proximity-based
peer-to-peer applications, implementing the same ZeroMQ Realtime Exchange Protocol.


Gyre does local area discovery and clustering. A Gyre node broadcasts
UDP beacons, and connects to peers that it finds. This class wraps a
Gyre node with a message-based API.

All incoming events are delivered via the recv call of a Gyre instance.
The first frame defines the type of the message, and following
frames provide further values:

ENTER fromnode headers ipaddress
    a new peer has entered the network
EXIT fromnode
    a peer has left the network
JOIN fromnode groupname
    a peer has joined a specific group
LEAVE fromnode groupname
    a peer has left a specific group
WHISPER fromnode message
    a peer has sent this node a message
SHOUT fromnode groupname message
    a peer has sent one of our groups a message

In SHOUT and WHISPER the message is a single frame in this version.
In ENTER, the headers frame contains a packed dictionary.

To join or leave a group, use the Join and Leave methods.
To set a header value, use the SetHeader method. To send a message
to a single peer, use Whisper method. To send a message to a group, use

Example (docker)

Run following command in a terminal:

docker run --rm -i --tty -t armen/gyre chat -name yourname

And repeat the above command in another terminal, the chat instances will discover eachother. Happy chatting!


View the API docs

Project Organization

Gyre is owned by all its authors and contributors. This is an open source
project licensed under the LGPLv3. To contribute to Gyre please read the
C4.1 process that we use.

To report an issue, use the Gyre issue tracker at

Docker Pull Command
Source Repository