Skip to content
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
win
.clang-format
.travis.yml
CONTRIBUTING.md
LICENSE
Makefile
README.md
_memcpy.h
appveyor.yml
ffi.c
ffi.q
k.h
test_ffi.q
test_win.q

README.md

FFI for kdb+

ffiq is an extension to kdb+ for loading and calling dynamic libraries using pure q. It is part of the Fusion for kdb+ interface collection.

The main purpose of the library is to build stable interfaces on top of external libraries, or to interact with the operating system from q. No compiler toolchain or writing C/C++ code is required to use this library.

We are grateful to @abalkin for allowing us to adapt and expand on his original codebase.

Please report issues in this repository.

Requirements

  • Operating system: Linux, macOS 10.12+, Windows 7+
  • kdb+ v3.5 or higher
  • libffi 3.1+ as per instructions. RHEL/CentOS 6/7 provided libffi 3.0.5 can be used as well.
environment installation
Ubuntu Linux with 64-bit kdb+ sudo apt-get install libffi-dev
Ubuntu Linux with 32-bit kdb+ sudo apt-get install libffi-dev:i386
RHEL/CentOS with 64-bit kdb+ sudo yum install libffi-devel
RHEL/CentOS with 32-bit kdb+ sudo yum install glibc-devel.i686 libgcc.i686 libffi-devel.i686
macOS (no action required)
Windows (no action required)

Installation

Download

Download the appropriate release archive from releases page.

Unpack and install content of the archive

environment action
Linux tar xzvf ffi_linux-v*.tar.gz -C $QHOME --strip 1
macOS tar xzvf ffi_osx-v*.tar.gz -C $QHOME --strip 1
Windows Open the archive and copy content of the ffi folder (ffi\*) to %QHOME% or c:\q

API

See code.kx.com/q/interfaces/ffi for documentation.

You can’t perform that action at this time.