Java binding for the nanomsg library.
This package contains a JNI-based Java binding for nanomsg
, the
communications and synchronization library.
You will need the following:
-
A copy of the JDK. The binding has been tested on
v1.7.0_21
running on a Windows 7 machine. -
A copy of ant. I use
v1.8.4
. -
A C compiler. I use MSVC 2010.
-
A copy of
cpptasks
, anant
helper that automates compilation of C code. I usev1.0b5
. You can find a copy in thelib/ant
directory; therefore, you can run ant withant -lib lib/ant/cpptasks-1.0b5.jar jar
to use the includedcpptasks
. -
Look at the
build.<OS>.properties
file for your OS. Pay particular attention to the value ofdir.jni.headers
.
Once your environment is set up and you have downloaded jnano
, you
can do any of these:
-
ant jar
-- create allJAR
s. -
ant test
-- run all unit tests (none for now). -
ant run
-- run a specific class in one of theJAR
s, such asTester
. See below. -
ant perf
-- run performance tests. See below.
To run a basic tester class, run this on a command window:
ant -Dcn=org.nanomsg.Tester run
To run the latency performance test for inproc
sockets, run this on
a command window:
ant -Dcn=org.nanomsg.inproc_lat -Dargs="1 100000" perf
To run the throughput performance test for inproc
sockets, run this
on a command window:
ant -Dcn=org.nanomsg.inproc_thr -Dargs="100 100000" perf
To run the latency performance test for TCP
sockets, run this on two
separate command windows:
ant -Dcn=org.nanomsg.local_lat -Dargs="tcp://127.0.0.1:6789 1 100000" perf
ant -Dcn=org.nanomsg.remote_lat -Dargs="tcp://127.0.0.1:6789 1 100000" perf
To run the throughput performance test for TCP
sockets, run this on
two separate command windows:
ant -Dcn=org.nanomsg.local_thr -Dargs="tcp://127.0.0.1:6789 100 100000" perf
ant -Dcn=org.nanomsg.remote_thr -Dargs="tcp://127.0.0.1:6789 100 100000" perf
This is a work in progress.
Everything works pretty well and performance is comparable to what you get on C.
I am still looking for the right way to integrate the polling support
provided by nanomsg
into the native Java way of doing
demultiplexing.
This project is released under the MIT license, as is the native libnanomsg library. See COPYING for more details.