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.
lua-zmq/API.md

3.8 KiB

constants

ZMQ_CONSTANT_NAME in the C API turns into zmq.CONSTANT_NAME in Lua.

version()

Reports 0MQ library version. See zmq_version(3).

zmq.version()

init(io_threads)

Initialises ØMQ context. See zmq_init(3).

zmq.init(io_threads)  

ZMQ Context methods

term()

Terminates ØMQ context. See zmq_term(3).

ctx:term()

socket(type)

Creates ØMQ socket. See zmq_socket(3).

ctx:socket(type)

ZMQ Socket methods

close()

Destroys ØMQ socket. See zmq_close(3).

sock:close()

setopt(option, optval)

Sets a specified option on a ØMQ socket. See zmq_setsockopt(3).

sock:setopt(option, optval)

getopt(option)

Gets a specified option of a ØMQ socket. See zmq_getsockopt(3).

sock:getopt(option)

bind(addr)

Binds the socket to the specified address. See zmq_bind(3).

sock:bind(addr)

connect(addr)

Connect the socket to the specified address. See zmq_connect(3).

sock:connect(addr)

send(msg [, flags])

Sends a message(Lua string). See zmq_send(3).

sock:send(msg)
sock:send(msg, flags)

recv([flags])

Retrieves a message(a Lua string) from the socket. See zmq_recv(3).

msg = sock:recv()
msg = sock:recv(flags)

Zero-copy send_msg/recv_msg methods

These methods allow Zero-copy transfer of a message from one ZMQ socket to another.

send_msg(msg [, flags])

Sends a message from a zmq_msg_t object. See zmq_send(3).

sock:send_msg(msg)
sock:send_msg(msg, flags)

recv_msg(msg [, flags])

Retrieves a message from the socket into a zmq_msg_t object. See zmq_recv(3).

sock:recv_msg(msg)
sock:recv_msg(msg, flags)

zmq_msg_t object constructors

zmq_msg_t.init()

Create an empty zmq_msg_t object. See zmq_msg_init(3).

local msg = zmq_msg_t.init()

zmq_msg_t.init_size(size)

Create an empty zmq_msg_t object and allow space for a message of size bytes. See zmq_msg_init_size(3).

local msg = zmq_msg_t.init_size(size)
msg:set_data(data) -- if (#data ~= size) then the message will be re-sized.

zmq_msg_t.init_data(data)

Create an zmq_msg_t object initialized with the content of data.

local msg = zmq_msg_t.init_data(data)
-- that is the same as:
local msg = zmq_msg_t.init_size(#data)
msg:set_data(data)

zmq_msg_t object methods

move(src)

Move the contents of one message into another. See zmq_msg_move(3).

msg1:move(msg2) -- move contents from msg2 -> msg1

copy(src)

Copy the contents of one message into another. See zmq_msg_copy(3).

msg1:copy(msg2) -- copy contents from msg2 -> msg1

set_data(data)

Change the message contents. See zmq_msg_data(3).

msg:set_data(data) -- replace/set the message contents to `data`

data()

Get the message contents. See zmq_msg_data(3).

local data = msg:data() -- get the message contents

size()

Get the size of the message contents. See zmq_msg_size(3).

local size = msg:size()

close()

Free the message contents and invalid the zmq_msg_t userdata object. See zmq_msg_close(3).

msg:close() -- free message contents and invalid `msg`