Expand description

As Rust is becoming a popular programming language for its performance and type safety, the desire to use it with still a maniac time-series database kdb+ is brewing. The aspiration is understandable since we know kdb+ is fast and its interface or a shared library should be fast as well. This interface was created to satisfy such a natural demand, furthermore, in a manner users do not feel any pain to use. The notrious ethoteric function names of the q/kdb+ C API is not an interest of Rust developers.

“Give us a Rust interface!!”

Here is your choice.

This interface provides two features:

  • IPC interface (Rust client of q/kdb+ process)
  • API (build a shared library for q/kdb+)

You can find detail descriptions of each feature under corresponding module page.

Modules

This api module provides API mirroring the C API of q/kdb+. The expected usage is to build a shared library for q/kdb+ in Rust.

This ipc module provides an interface to interact with q/kdb+ via IPC. The expected usage is to send a (text) query to q/kdb+ process from Rust client and receive its response. Query to kdb+ is supported in two ways:

This module provides a list of q attributes. The motivation to contain them in a module is to tie them up as related items rather than scattered values. Hence user should use these indicators with qattribute:: prefix, e.g., qattribute::UNIQUE.

This module provides a list of q null values. The motivation to contain them in a module is to tie them up as related items rather than scattered values. Hence user should use these indicators with qnull:: prefix, e.g., qinf_base::J.

This module provides a list of q null values. The motivation to contain them in a module is to tie them up as related items rather than scattered values. Hence user should use these indicators with qnull:: prefix, e.g., qninf_base::I.

This module provides a list of underlying null values of q objects. The motivation to contain them in a module is to tie them up as related items rather than scattered values. Hence user should use these indicators with qnull:: prefix, e.g., qnull_base::F.

This module provides a list of q types. The motivation to contain them in a module is to tie them up as related items rather than scattered values. Hence user should use these indicators with qtype:: prefix, e.g., qtype::BOOL_LIST.

Macros

Convert &str to S (null-terminated character array).