This interface provides a mechanism for Solace PubSub+ brokers to interact with kdb+. The interface is a thin wrapper around the Solace C api documented here
Kdb+ is the world's fastest time-series database, optimized for ingesting, analyzing and storing massive amounts of structured data. To get started with kdb+, please visit https://code.kx.com/q/learn/ for downloads and developer information. For general information, visit https://kx.com/
Solace PubSub+ Event Broker efficiently streams events and information across cloud, on-premises and within IoT environments. The โ+โ in PubSub+ means it supports a wide range of message exchange patterns beyond publish/subscribe. These include request/reply, streaming and replay, as well as different qualities of service, such as best effort and guaranteed delivery.
You can get started quickly by using free Standard Edition of the Solace software broker or spin up a free instance on Solace Cloud.
If you have any Solace related questions, you can raise them at Solace Community.
Documentation outlining the functionality available for this interface can be found here.
In order to pub/sub with Solace, you'll need to be connected to a PubSub+ event broker.
If you don't already have an event broker running, you can avail of a free standard edition docker based broker or a free cloud based instance (NOTE: other versions and enterprise solutions are also available).
Download the latest release from our releases page
Before installing, install the Solace C API if you have not yet done so:
1. Download Solace C API from [here](https://solace.com/downloads/)(please select for your relevant machine type).
2. Unzip the Solace API to a directory on the machine which the end user can read from.
3. Add the lib directory to the `LD_LIBRARY_PATH` environment variable e.g. if unzipped to `/usr/local/solaceapi/`
- `export LD_LIBRARY_PATH=/usr/local/solaceapi/lib/:$LD_LIBRARY_PATH`
To install the library and scripts, either
- run the provided install.sh
or
- copy
kdbsolace.so
which was built or downloaded earlier to your kdb+ folder. If on a Linux 64bit machine with kdb+ installed in/usr/local/q
, place the shared library into/usr/local/q/l64/
. - the q script to load the solace API (
solace.q
) can be placed in the current working directory or within the kdb+ install directory.
See examples and API documentation on how to tailor the interface for your needs.
Before installing, install the Solace C API if you have not yet done so:
- Download Solace C API from here(please select for your relevant machine type).
- Unzip the Solace API to a directory on the machine which the end user can read from.
- Add the libsolclient.dll lib directory to the kdb lib (directory e.g. C:\q\w64)
To install the library and scripts, either
- run the provided install.bat
or
- copy
kdbsolace.dll
which was built or downloaded earlier, to your kdb+ install binary dir e.g. if kdb+ installed atC:\q
, place the shared library intoC:\q\w64\
. - copy the q script to load the solace API (
solace.q
) can be placed in the current working directory or within the kdb+ install directory.
See examples and API documentation on how to tailor the interface for your needs.
Before installing, install the Solace C API if you have not yet done so:
1. Download Solace C API from [here](https://solace.com/downloads/)(please select for your relevant machine type).
2. Unzip the Solace API to a directory on the machine which the end user can read from.
3. Add the lib directory to the `DYLD_LIBRARY_PATH` environment variable e.g. if unzipped to `/Users/jim/solaceapi/`
- `export DYLD_LIBRARY_PATH=/Users/jim/solaceapi/lib/:$DYLD_LIBRARY_PATH`
To install the library and scripts, either
- run the provided install.sh
or
- Copy
kdbsolace.so
which was built or downloaded earlier, to your kdb+ install binary dir e.g. if kdb+ installed at/usr/local/q
, place the shared library into/usr/local/q/m64/
.. - The q script to load the solace API (
solace.q
) can be placed in the current working directory or within the kdb+ install directory.
Currently transactional based messaging is unsupported.
Building the interface from source requires gcc
, gcc c++
, make
and cmake
packages installed on your development machine (e.g. xcode for Mac).
Follow these steps:
- Download the Solace C Messaging API ( https://solace.com/downloads/ ).
- Set an environment variable
SOLACE_API_DIR
to the location of the unzipped Solace C API. - Run
cmake
- Run
make install
For example, on Linux/Mac, to create a build within the build directory
export SOLACE_API_DIR=/home/myuser/solaceapi/
cd build
cmake ../
make install
You should then find the resulting files in a newly created api dir, which should reside within the build directory.
Building the interface from source requires Visual Studio
Follow these steps for Visual Studio 15 (2017) and above:
- Download the Solace C Messaging API ( https://solace.com/downloads/ ).
- Set an environment variable
SOLACE_API_DIR
to the location of the unzipped Solace C API. - Run
cmake -G "Visual Studio 15 2017 Win64"
This will generate a visual studio build package.
The Solace interface is provided here under an Apache 2.0 license.
If you find issues with the interface or have feature requests please consider raising an issue here.
If you wish to contribute to this project please follow the contributing guide here.