JeroMQ: Native Java implementation of ZeroMQ
github.com
github.com
If your code runs on the JVM, it should run on, well, the JVM. It shouldn't run partly on the JVM and partly on the host machine, since that breaks the purpose of using the JVM.
Not to mention you need the JVM installed too and believe me when I say there are plenty of us who are sick of the JVM and its incessant auto-updater.
Easy, just use RoboVM or Aicas
> Or many embedded devices for that matter.
There are lots of commercial JDKs that compile directly to native code.
Most of the embedded devices that cannot be targeted by Java wouldn't support running something like ZeroMQ anyway.
Instead they have an application already written in Java, or some other compelling reason to write the application in Java. Given that there is already a dependency on the JVM, it is silly to add another dependency on a particular host platform. It is silly to force the compile process to become aware of the host platform, when it otherwise wouldn't need to be.
There is an interesting new effort to make a performant JVM ffi though https://groups.google.com/forum/#!forum/jvm-ffi
These are some of the things about code that stays inside the jvm bounding box that I personally find valuable. It's one of the ways we keep our operational burden down.
It's a high price, but the community has surprisingly deep solutions.
It divides all the code into JVM, Posix and Windows (and a few other things) that don't share ideas much; some of the better ideas get ported in one direction or the other, many do not.