You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Kamal Curi 84d7d0812e Changing to https 7 months ago
cmake Support newer zmq and Lua versions. 2 years ago
examples Try Forwarding multiple messages per IO event notification. 14 years ago
perf Fix throughput benchmark. Use PUSH/PULL instead of PUB/SUB. 10 years ago
rockspecs Changing to https 7 months ago
src Support newer zmq and Lua versions. 2 years ago
tests Add missing test script. 13 years ago
ws Fix definition of ProtoFields to support latest wireshark. 13 years ago
.gitignore Move low-level threads code into a different project lua-llthreads. 15 years ago
.travis.yml Remove BOM from .travis.yml to fix travis-ci build. 10 years ago
API.md Fix API docs for poller timeout units. 12 years ago
CMakeLists.txt Support newer zmq and Lua versions. 2 years ago
COPYRIGHT Add COPYRIGHT file. 15 years ago
README.md Add Travis CI. 13 years ago
README.regenerate.md Add re-generate docs. 13 years ago
README.windows.md Require llthreads version 1.1 15 years ago
zmq.nobj.lua Support newer libzmq. 2 years ago

README.md

About

travis-ci status

Lua bindings to zeromq2. Check out the ZeroMQ Guide with Lua examples.

Windows

Download a compiled version of LuaJIT 2.0.0-beta11 + lua-zmq + zeromq2.2.0 32bit & 64bit.

API

See API.md and ØMQ docs.

Requirements

  • ZeroMQ version 2.1, 2.2 or 3.2.
  • Might work with some 2.0.x versions (2.0.6 and lower are not supported).

For Ubuntu 10.10 users:

  • The version of ZeroMQ (2.0.6beta) that comes with Ubuntu 10.10 will not work with these bindings. Please upgrade to version 2.1.

Installation

It is recommended to either compile Lua with the "-pthread" flag or preload libpthread.so on Linux when using this module (see this glibc bug report):

$ LD_PRELOAD=/lib/libpthread.so lua

Release 1.0

lua-zmq:

$ sudo luarocks install lua-zmq

lua-zmq-threads:

$ sudo luarocks install lua-llthreads
$ sudo luarocks install lua-zmq-threads

Latest Git revision

With LuaRocks 2.0.4.1:

$ sudo luarocks install https://raw.github.com/Neopallium/lua-zmq/master/rockspecs/lua-zmq-scm-1.rockspec

For threads support:

$ sudo luarocks install https://raw.github.com/Neopallium/lua-llthreads/master/rockspecs/lua-llthreads-scm-0.rockspec
$ sudo luarocks install https://raw.github.com/Neopallium/lua-zmq/master/rockspecs/lua-zmq-threads-scm-0.rockspec

With CMake:

$ git clone git://github.com/Neopallium/lua-zmq.git
$ cd lua-zmq ; mkdir build ; cd build
$ cmake ..
$ make
$ sudo make install

Throughput benchmark

Throughput benchmark using the tcp transport over localhost:
message size: 30 [B]
message count: 100000000

Using send/recv functions running under Lua 5.1.4:
mean throughput: 1577407 [msg/s]
mean throughput: 378.578 [Mb/s]

Using send/recv functions running under LuaJIT2 (git HEAD):
mean throughput: 5112158 [msg/s]
mean throughput: 1226.918 [Mb/s]

Using send_msg/recv_msg functions running under LuaJIT2 (git HEAD):
mean throughput: 6160911 [msg/s]
mean throughput: 1478.619 [Mb/s]

C++ code:
mean throughput: 6241452 [msg/s]
mean throughput: 1497.948 [Mb/s]

Running benchmarks

When running the benchmarks you will need run two different scripts (one 'local' and one 'remote'). Both scripts can be run on the same computer or on different computers. Make sure to start the 'local' script first.

Throughput benchmark:

# first start local script
$ luajit-2 perf/local_thr.lua "tcp://lo:5555" 30 1000000

# then in another window start remote script
$ luajit-2 perf/remote_thr.lua "tcp://localhost:5555" 30 1000000

Latency benchmark:

# first start local script
$ luajit-2 perf/local_lat.lua "tcp://lo:5555" 1 100000

# then in another window start remote script
$ luajit-2 perf/remote_lat.lua "tcp://localhost:5555" 1 100000