Skip to content
qzmq provides Q bindings for CZMQ, the high-level C binding for ØMQ
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
kx
perf
LICENSE
LICENSE.apache2.txt
README.md
assert.q
qzmq.c
qzmq.q
qzmq_test.q

README.md

Title: README

Date: 20180205

# qzmq

Qzmq provides Q bindings for CZMQ, the high-level C binding for ØMQ (ZeroMQ).

Version 3.0.2 of qzmq corresponding to the same version of CZMQ. Qzmq offers a subset of CZMQ APIs. See the CZMQ Coverage below.

Qzmq is written and maintained by Jay Han (jay.han@gmail.com)

Qzmq is hosted at github and it uses the issue tracker for all issues and comments.

## Contents ## News ## News This release of qzmq is different from 20160207 release:
  • merged pull request #15 from jhanna-kx/master
  • added Apache 2 license

This release of qzmq is different from 20150518 (3.0.1) release:

  • deprecated zactor or concurrency support
  • deprecated zclock, zctx, zfile
  • removed helper methods zmsg_{load,save}
  • built/tested on CentOS 7 with OS supplied CZMQ (3.0.2) and ØMQ (4.1.4) libraries
## Features of qzmq Qzmq lets Q users write

ZeroMQ takes care of data mobility/distribution/topology (e.g. pub/sub, req/rep, etc.) over various networks and transports (threads/processes/hosts). Note that threads are not supported by qzmq.

Because q has first-class functions qzmq can move code as well as data.

## CZMQ Coverage Qzmq covers a subset of [CZMQ APIs][czmq-reference].

Mostly implemented as of 20160709:

Deprecated:

  • [zactor - simple actor framework][zactor]
  • [zclock - millisecond clocks and delays][zclock]
  • [zctx - working with ZeroMQ contexts][zctx]
  • [zfile - provides methods to work with files in a portable fashion][zfile]
  • [zthread - working with system threads][zthread]

May implement the following in the future:

  • zloop
  • zmonitor
  • zpoller

Some czmq APIs seem redundant viz-a-viz q: zuuid or UUID support, zlist or generic container, etc.

## Copyright and License
// Copyright (c) 2012-2016 Jaeheum Han <jay.han@gmail.com>
// This file is part of qzmq.
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

// Alternatively you may use Apache 2.0 license instead of MPL
## Files of qzmq ## Building qzmq Prerequisites: kdb+ 3.0 or later, [ØMQ][zeromq] 4, [CZMQ][czmq] 3. Consult your local sysadmin for installation prerequisites.

Current version 3.0.2 of qzmq has been built with 64-bit kdb+ on CentOS 7. Instructions for builidng qzmq assumes kdb+ is in $HOME/q/ directory.

git clone git://github.com/jaeheum/qzmq
cd qzmq
gcc -DKXVER=3 \
    -shared -fPIC qzmq.c -o $HOME/q/l64/qzmq.so \
    -Wall -Wextra \
    -Wl,-rpath -Wl,/usr/lib64 \
    -I./kx/kdb+3.0 \
    -L./kx/kdb+3.0/l64 \
    `pkg-config --cflags --libs czmq`
cp qzmq.q assert.q $HOME/q/
## Running qzmq
\l qzmq.q

See qzmq_test.q for examples.

  • qzmq_test.q -- qzmq translation of CZMQ's self-tests.

ZeroMQ Guide has examples in many languages. Translation of these examples to q is under way (pulled from here). See Issue #5.

## Issues See the [issue tracker][issues].
You can’t perform that action at this time.