6

Simple question. Why "porting" zmq on java and call it JeroMQ is good idea?

  • 2
    Because someone wanted to - presumably to solve a problem. Ask them why (e.g. see the FAQ/documentation). As for the name, why not? Ports and close-competitors usually follow "similar" names to show that they are [closely] related. emacs/xemac, vim/gvim, NUnit/XUnit, Hibernate/nHibernate etc. – user2246674 Sep 26 '13 at 19:34

2 Answers2

18

JeroMQ is an official project of the ZeroMQ community; it's a full port of the C++ libzmq library, supporting version 3.2.

Advantages:

  • Pure Java, so no need to link in C/C++ via JNI. This is extremely helpful on devices where native libraries are difficult or impossible.
  • 100% compatible with the JZMQ API (the two projects agreed on a single API so you can import one or the other transparently).
  • 100% compatible with the ZeroMQ wire protocol, so you can run some nodes using JeroMQ and some using the native library, and it works as expected.
  • Good performance, relatively close to the native library.

Disadvantages:

  • No PGM multicast - there is no Java version of that library yet.
  • Does not yet support ZeroMQ v4 functionality, including security.
Pieter Hintjens
  • 6,599
  • 1
  • 24
  • 29
4

JeroMQ is a pure Java implementation of ZeroMq. If your target language is Java, it's easier to get started with JeroMq since it uses a single jar file. ZeroMq (zmq), on the other hand, is written in C. You must build zmq, libzmq, and the Java language bindings, jzmq, to use it in a Java app. The JeroMq API is identical to jzmq, so starting with JeroMq and switching to jzmq later has no impact on your application with the exception of performance; zmq performs better than JeroMq.

Hope that helps,

raffian
  • 31,267
  • 26
  • 103
  • 174