• Stars
    star
    2,288
  • Rank 19,342 (Top 0.4 %)
  • Language
    Java
  • License
    Mozilla Public Li...
  • Created almost 12 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Pure Java ZeroMQ

JeroMQ

Pure Java implementation of libzmq (http://zeromq.org).

CircleCI Quality Gate Status Coverage Status Maven Central Javadocs

Features

  • Based on libzmq 4.1.7.

  • ZMTP/3.0 (http://rfc.zeromq.org/spec:23).

  • tcp:// protocol and inproc:// is compatible with zeromq.

  • ipc:// protocol works only between jeromq (uses tcp://127.0.0.1:port internally).

  • Securities

  • Performance that's not too bad, compared to native libzmq.

  • Exactly same developer experience with zeromq and jzmq.

  • TCP KeepAlive Count, Idle and Interval are known to only work with JVM 13 and later.

Unsupported

  • ipc:// protocol with zeromq. Java doesn't support UNIX domain socket.

  • pgm:// protocol. Cannot find a pgm Java implementation.

  • norm:// protocol. Cannot find a Java implementation.

  • tipc:// protocol. Cannot find a Java implementation.

  • GSSAPI mechanism is not yet implemented.

  • Interrupting threads is still unsupported: library is NOT Thread.interrupt safe.

Contributing

Contributions welcome! See CONTRIBUTING.md for details about the contribution process and useful development tasks.

Usage

Maven

Add it to your Maven project's pom.xml:

    <dependency>
      <groupId>org.zeromq</groupId>
      <artifactId>jeromq</artifactId>
      <version>0.6.0</version>
    </dependency>

    <!-- for the latest SNAPSHOT -->
    <dependency>
      <groupId>org.zeromq</groupId>
      <artifactId>jeromq</artifactId>
      <version>0.6.0</version>
    </dependency>

    <!-- If you can't find the latest snapshot -->
    <repositories>
      <repository>
        <id>sonatype-nexus-snapshots</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <releases>
          <enabled>false</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
        </snapshots>
       </repository>
    </repositories>

Ant

To generate an ant build file from pom.xml, issue the following command:

mvn ant:ant

Getting started

Simple example

Here is how you might implement a server that prints the messages it receives and responds to them with "Hello, world!":

import org.zeromq.SocketType;
import org.zeromq.ZMQ;
import org.zeromq.ZContext;

public class hwserver
{
    public static void main(String[] args) throws Exception
    {
        try (ZContext context = new ZContext()) {
            // Socket to talk to clients
            ZMQ.Socket socket = context.createSocket(SocketType.REP);
            socket.bind("tcp://*:5555");

            while (!Thread.currentThread().isInterrupted()) {
                // Block until a message is received
                byte[] reply = socket.recv(0);

                // Print the message
                System.out.println(
                    "Received: [" + new String(reply, ZMQ.CHARSET) + "]"
                );

                // Send a response
                String response = "Hello, world!";
                socket.send(response.getBytes(ZMQ.CHARSET), 0);
            }
        }
    }
}

More examples

The JeroMQ translations of the zguide examples are a good reference for recommended usage.

Documentation

For API-level documentation, see the Javadocs.

This repo also has a doc folder, which contains assorted "how to do X" guides and other useful information about various topics related to using JeroMQ.

License

All source files are copyright © 2007-2024 contributors as noted in the AUTHORS file.

Free use of this software is granted under the terms of the Mozilla Public License 2.0. For details see the file LICENSE included with the JeroMQ distribution.

More Repositories

1

libzmq

ZeroMQ core engine in C++, implements ZMTP/3.1
C++
8,996
star
2

pyzmq

PyZMQ: Python bindings for zeromq
Python
3,480
star
3

netmq

A 100% native C# implementation of ZeroMQ for .NET
C#
2,822
star
4

cppzmq

Header-only C++ binding for libzmq
C++
1,737
star
5

zeromq.js

⚡ Node.js bindings to the ØMQ library
TypeScript
1,371
star
6

czmq

High-level C binding for ØMQ
C
1,110
star
7

zmq.rs

A native implementation of ØMQ in Rust
Rust
1,015
star
8

zyre

Zyre - an open-source framework for proximity-based peer-to-peer applications
C
843
star
9

jzmq

Java binding for ZeroMQ
Java
584
star
10

goczmq

goczmq is a golang wrapper for CZMQ.
Go
552
star
11

php-zmq

ZeroMQ for PHP
C
543
star
12

zeromq4-x

ØMQ 4.x stable release branch - bug fixes only
C++
446
star
13

zmqpp

0mq 'highlevel' C++ bindings
C++
418
star
14

zeromq2-x

ØMQ/2.x distribution
C++
365
star
15

azmq

C++ language binding library integrating ZeroMQ with Boost Asio
C++
312
star
16

malamute

The ZeroMQ Enterprise Messaging Broker
C
311
star
17

gomq

Pure Go Implementation of a Subset of ZeroMQ
Go
290
star
18

clrzmq

CLR (.NET & Mono) binding for 0MQ
C#
272
star
19

filemq

FileMQ is a publish-subscribe file service based on 0MQ
Java
271
star
20

rbzmq

Ruby binding for 0MQ
C
248
star
21

clrzmq4

ZeroMQ C# namespace (.NET and mono, Windows, Linux and MacOSX, x86 and amd64)
C#
235
star
22

zproto

A protocol framework for ZeroMQ
C
228
star
23

zeromq3-x

ØMQ/3.2 release branch - bug fixes only
C++
228
star
24

JSMQ

Javascript client for ZeroMQ/NetMQ
JavaScript
190
star
25

chumak

Pure Erlang implementation of ZeroMQ Message Transport Protocol.
Erlang
189
star
26

erlzmq2

Erlang binding for 0MQ (v2)
C
165
star
27

libcurve

An encryption and authentication library for ZeroMQ applications
C
161
star
28

zproject

CLASS Project Generator
Shell
142
star
29

lzmq

Lua binding to ZeroMQ
Lua
133
star
30

gitdown

Turn github into your publishing platform
Perl 6
130
star
31

zeromq4-1

ZeroMQ 4.1.x stable release branch - bug fixes only
C++
125
star
32

pyre

Python port of Zyre
Python
116
star
33

exzmq

ZeroMQ for Elixir
Elixir
115
star
34

fszmq

An F# binding for the ZeroMQ distributed computing library. For more information, please visit:
F#
112
star
35

majordomo

Majordomo Project
C
111
star
36

cljzmq

Clojure bindings for ØMQ
Clojure
105
star
37

rfc

ZeroMQ RFC project
C
104
star
38

dafka

Dafka is a decentralized distributed streaming platform
C
101
star
39

gyre

Golang port of Zyre
Go
87
star
40

zwssock

ZeroMQ WebSocket library for CZMQ
C
85
star
41

jszmq

Javascript port of zeromq
TypeScript
76
star
42

libzmtp

Minimal ZMTP implementation in C
C
53
star
43

ingescape

Model-based framework for broker-free distributed software environments. Any language, any OS, web, cloud.
C
52
star
44

zbroker

Elastic pipes
C
50
star
45

czmqpp

C++ wrapper for czmq. Aims to be minimal, simple and consistent.
C++
43
star
46

zeromq.org

ZeroMQ Website
HTML
32
star
47

cookbook

ZeroMQ Cookbook
Python
32
star
48

pyczmq

Python CZMQ bindings
Python
31
star
49

zebra

REST/HTTP to XRAP gateway
C++
26
star
50

zmtpdump

ZeroMQ Transport Protocol packet analyzer
Roff
25
star
51

jeromq-jms

JeroMQ JMS
Java
24
star
52

jzmq-api

A Java ØMQ API for abstracting the various implementations of ZeroMQ Message Transport Protocol
Java
24
star
53

zmq-jni

Simple High Performance JNI Wrapper for ØMQ
Java
22
star
54

perlzmq

version agnostic Perl bindings for zeromq
Perl
22
star
55

zmtp

Stuff related to the ZMTP protocol
C
18
star
56

contiki-zmtp

ZMTP for Contiki OS
C
16
star
57

jyre

Java implementation of ZRE protocol
Java
14
star
58

zccp

ZeroMQ Command & Control Protocol
Go
14
star
59

f77_zmq

Fortran binding for ZeroMQ
C
13
star
60

ztools

Tools for ØMQ auto-builds and API site
Perl
12
star
61

zeps

ZeroMQ Enterprise Publish-Subscribe (ZEPS) **DEPRECATED**
C
12
star
62

mruby-zmq

mruby bindings for libzmq (v4)
C
10
star
63

zeromq2-0

Packaging project for ØMQ/2.0 series
C++
9
star
64

zkernel

z kernel
C
9
star
65

nimczmq

Nim ( http://nim-lang.org/ ) bindings for CZMQ
Nim
6
star
66

curvezmq-java

Java
5
star
67

gozyre

Go bindings for zeromq libzyre - an open-source framework for proximity-based peer-to-peer applications
Go
5
star
68

issues

Issue test cases
C
4
star
69

zdiscgo

CZMQ service discovery zactor with support for Go plugins.
C
4
star
70

jdafka

Dafka protocol implementation in Java
Java
4
star
71

zlabs

Labs project for experimenting with CZMQ
Shell
4
star
72

zeromq-buildbot

A buildbot based regression tester for Zeromq
Python
3
star
73

azmq1-0

v1.0 release of azmq
C++
3
star
74

lyre

Lua port of Zyre
Lua
3
star
75

jeromq3-x

Java
3
star
76

jzmq3-x

Java
2
star
77

zmtp-java

Java
2
star
78

libzmq-relicense

This repo contains information regarding re-licensing libzmq
Python
2
star
79

clrzmq2

Old repository path for clrzmq
2
star
80

libzmq-fuzz-corpora

fuzzers corpus files for libzmq are stored in binary format in this repository
1
star
81

zeromq-download-redirect

HTML
1
star