Skip to content

Latest commit

 

History

History
38 lines (25 loc) · 1.61 KB

README.md

File metadata and controls

38 lines (25 loc) · 1.61 KB

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.