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
Robert G. Jakabosky 418bbe024a Updated pre-generated module code. 15 years ago
cmake Ported zmq bindings to LuaNativeObjects bindings generator. 15 years ago
examples Added example of using an event-loop with ZeroMQ sockets. 16 years ago
perf Add thread-to-thread latency test example. 15 years ago
rockspecs Fixed luarocks build. 15 years ago
src Updated pre-generated module code. 15 years ago
.gitignore Move low-level threads code into a different project lua-llthreads. 15 years ago
API.md zmq:init(io_threads) 16 years ago
CMakeLists.txt Fixed cmake build error. 15 years ago
README.md Update link to 0MQ docs. 15 years ago
zmq.nobj.lua Move low-level threads code into a different project lua-llthreads. 15 years ago

README.md

About

Lua bindings to zeromq2.

Installation

With LuaRocks 2.0.4.1: $ sudo luarocks install https://github.com/Neopallium/lua-zmq/raw/master/rockspecs/lua-zmq-scm-1.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

You can disable the FFI support when running under LuaJIT2 by passing a forth parameter disable_ffi

API

See API.md and ØMQ docs.