All Projects → KxSystems → kafka

KxSystems / kafka

Licence: Apache-2.0 license
kdb+ to Apache Kafka adapter, for pub/sub

Programming Languages

c
50402 projects - #5 most used programming language
q
29 projects
Makefile
30231 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to kafka

javakdb
Using Java with kdb+
Stars: ✭ 41 (+7.89%)
Mutual labels:  interface, kdb, q
rkdb
R client for kdb+
Stars: ✭ 37 (-2.63%)
Mutual labels:  interface, kdb, q
docs-v1
Source of code.kx.com/q
Stars: ✭ 33 (-13.16%)
Mutual labels:  kdb, q
vscode-q
vscode kdb+/q extension
Stars: ✭ 34 (-10.53%)
Mutual labels:  kdb, q
automl
Automated Machine Learning Framework for kdb+
Stars: ✭ 22 (-42.11%)
Mutual labels:  kdb, q
kdb nim
Nim Kdb type-safe bindings
Stars: ✭ 13 (-65.79%)
Mutual labels:  kdb, q
docs
Source for documentation site
Stars: ✭ 73 (+92.11%)
Mutual labels:  kdb, q
q-mode
Emacs mode for editing q scripts and communicating with inferior q/qcon buffers
Stars: ✭ 21 (-44.74%)
Mutual labels:  kdb, q
ml.q
Machine Learning for kdb+/q
Stars: ✭ 25 (-34.21%)
Mutual labels:  kdb, q
ml
Machine-learning toolkit
Stars: ✭ 48 (+26.32%)
Mutual labels:  kdb, q
q4q
Source Code for "Q for Quants"
Stars: ✭ 22 (-42.11%)
Mutual labels:  kdb, q
jupyterq
Jupyter kernel for kdb+
Stars: ✭ 87 (+128.95%)
Mutual labels:  kdb, q
kdb-tick
Latest source files for kdb+tick
Stars: ✭ 73 (+92.11%)
Mutual labels:  kdb, q
nanoleaf-aurora
A java wrapper for the Nanoleaf Aurora API
Stars: ✭ 19 (-50%)
Mutual labels:  interface
mobius-gui
🎨 Reactive & Stream & Driver based UI framework build on Mobius Utils, equipped with neumorphism-derived & utility-first styles.
Stars: ✭ 43 (+13.16%)
Mutual labels:  interface
web-rpi-fm
Web interface for Raspberry Pi fm transmitter. Made using Vue.js and Python.
Stars: ✭ 33 (-13.16%)
Mutual labels:  interface
SimpleCLI
Command Line Interface Library for Arduino
Stars: ✭ 197 (+418.42%)
Mutual labels:  interface
Mimir
OSINT Threat Intel Interface - CLI for HoneyDB
Stars: ✭ 104 (+173.68%)
Mutual labels:  interface
gami
GO - Asterisk AMI Interface
Stars: ✭ 31 (-18.42%)
Mutual labels:  interface
webpack-ui
The Graphical User Interface for webpack
Stars: ✭ 45 (+18.42%)
Mutual labels:  interface

kfk – Kafka for kdb+

GitHub release (latest by date) Travis (.org) branch

Introduction

kfk is a thin wrapper for kdb+ around librdkafka C API for Kafka. It is part of the Fusion for kdb+ interface collection.

This interface is supported for the following platforms

  • 32 & 64 bit MacOS and Linux
  • 64 bit Windows

New to kdb+ ?

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/

Documentation

Documentation outlining the functionality available for this interface can be found here.

Running

Linux & Mac

Step 1

Build or install the latest version of librdkafka. The minimum required version is v0.11.0.

Install

macOS

brew install librdkafka

Ubuntu/Debian (unstable)

sudo apt-get install librdkafka-dev

RHEL/CentOS

sudo yum install librdkafka-devel
Build from source

Follow requirements for librdkafka compilation.

To build 32-bit versions on 64-bit OS you need 32-bit versions of libraries and a toolchain.

#CentOS/RHEL
sudo yum install glibc-devel.i686 libgcc.i686 libstdc++.i686 zlib-devel.i686
# Ubuntu
sudo apt-get install gcc-multilib
git clone https://github.com/edenhill/librdkafka.git
cd librdkafka
make clean  # to make sure nothing left from previous build or if upgrading/rebuilding
# If using OpenSSL, remove --disable-ssl from configure command below
# On macOS with OpenSSL you might need to set `export OPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2k` before proceeding


# 32 bit
./configure --prefix=$HOME --disable-sasl --disable-lz4 --disable-ssl --mbits=32
# 64 bits
./configure --prefix=$HOME --disable-sasl --disable-lz4 --disable-ssl --mbits=64

make
make install

Step 2

Compile, install and move shared object file to appropriate location.

  1. Make sure you have QHOME set as an environment variable.

  2. If your librdkafka install is not located in $HOME/include as defaulted by the above instructions set KAFKA_ROOT environment variable to the appropriate include location.

  3. Run the following set of commands to set up the system as outlined

// in kfk source folder
make
// move installed `.so` to `$QHOME/<arch>`
make install
// remove `.so` from kfk source folder
make clean

Note: If compiling dynamically linked libkfk.so make sure you have librdkafka.so.1 in your LD_LIBRARY_PATH.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/lib

Windows

At present the Windows build of the .dll for the kafka interface has been tested on Visual Studio 2017 with librdkafka.redist.1.0.0. The following are the steps completed to achieve this

  1. Install nuget for Windows: https:/nuget.com/downloads

  2. Install the redistributed version of librdkafka which is suitable for use with windows, documentation can be found here.

     >nuget install librdkafka.redist
    
  3. Ensure that you have Windows Visual Studio 2017 installed.

  4. Place the installed librdkafka.redist into an appropriate location (suggestions %HOME% or %QHOME%). For the remaining instructions the path to the install is "C:/Users/jdoe/librdkafka.redist.1.0.0"

  5. Update LIB user environment variable to include the following path to rdkafka.h for appropriate Windows architecture in this case

     LIB = C:/Users/jdoe/librdkafka.redist.1.0.0/build/native/lib/win/x64/win-x64-Release/v120
    
  6. Update PATH system environment variable to include path to native folder for the appropriate computer architecture

     PATH = C:/Users/jdoe/librdkafka.redist.1.0.0/runtimes/win-x64/native
    
  7. Create a user environment variable KAFKA_NATIVE in line with the following example path

     KAFKA_NATIVE = C:/Users/jdoe/librdkafka.redist.1.0.0/build/native/include/
    
  8. Clone the kafka interface from the KxSystems github

     >git clone https://github.com/kxsystems/kafka
    
  9. Move to the kafka/build/ folder within the github clone and run the following;

     >call "build.bat"
    
  10. If prompted for input please follow instructions accordingly

  11. Move the created .dll from the build folder to %QHOME%/<arch>

Status

This 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].