Skip to content
No description, website, or topics provided.
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.
examples
src
test
CONTRIBUTING.md
LICENSE
README.md

README.md

This project is in maintenance mode. We may fix bugs, but no new features will be added in foreseeable future.

qErlang

qErlang is an Erlang module implementing kdb+ interprocess communication protocol. qErlang provides:

  • Support for synchronous and asynchronous queries
  • Support for Kdb+ protocol type 3.0
  • Full coverage of KDB+ types
  • Partial decoding of messages for fast query routing
  • Compatibility with Erlang/OTP 17.x

Usage

To use qErlang from rebar, add:

{deps, [{qErlang, ".*", {git, "https://github.com/exxeleron/qErlang"}}]}.

to your rebar.config.

Documentation

EDoc generated documentation of the API is available here.

Examples

The examples directory contains:

  • An OTP application with a gen_server subscribing to a KDB+ tick instance for updates
  • Demonstration of how to use the peek API function for message routing based on partial decoding of messages

In qErlang, q types deserialize to Erlang tuples of the form {<q type>, <data>}. The qErlang_test.erl file in the test directory is a useful reference with examples of deserialized q objects of various types.

Limitations

qErlang does not support compressed messages. In practice it means that in most use cases the KDB+ server has to be on the same host as the process using the qErlang module. KDB+ IPC documentation provides information on when a KDB+ server wil compress an outgoing message.

You can’t perform that action at this time.