#set #clingo #bindings #api #version #linking #variables

sys clingo-sys

Raw FFI bindings to the C API of the clingo library

15 releases

0.7.2 Oct 2, 2023
0.7.1 Aug 27, 2021
0.6.0 Jun 5, 2020
0.5.1 Nov 7, 2019
0.2.0 May 4, 2017

#14 in #linking

Download history 38/week @ 2024-01-15 7/week @ 2024-01-22 8/week @ 2024-01-29 43/week @ 2024-02-19 37/week @ 2024-02-26 50/week @ 2024-03-04

130 downloads per month
Used in 4 crates (via clingo)

MIT license

9MB
190K SLoC

C++ 128K SLoC // 0.1% comments C 37K SLoC // 0.0% comments Python 13K SLoC // 0.3% comments Rust 4K SLoC // 0.0% comments Solidity 4K SLoC Bitbake 1K SLoC // 0.8% comments Bazel 680 SLoC // 0.2% comments Visual Studio Project 630 SLoC Shell 533 SLoC // 0.4% comments Automake 421 SLoC // 0.2% comments M4 255 SLoC // 0.4% comments Visual Studio Solution 234 SLoC Coq 172 SLoC Batch 73 SLoC FORTRAN Legacy 18 SLoC PowerShell 13 SLoC // 0.1% comments Lua 10 SLoC Alex 7 SLoC JavaScript 2 SLoC

clingo-sys Build StatusLatest VersionRust Documentation

Rust raw FFI bindings to the C API of clingo library. Clingo version 5.6.2.

Requirements library

Per default the crate uses the clingo library via dynamic linking. It is assumed that a clingo dynamic library is installed on the system. You have to set the environment variable CLINGO_LIBRARY_PATH. For example:

export CLINGO_LIBRARY_PATH=/scratch/miniconda3/envs/test/lib

Using static-linking

The crate defines a Cargo feature that allows to use the clingo library via static linking.

The recommended way to use the optional static linking support is as follows.

[dependencies]
clingo-sys = { version = "0.7.2", features = ["static-linking"] }

To build clingo for static linking you need the following tools installed:

  • a C++14 conforming compiler
    • at least GCC version 4.9
    • Clang version 3.1 (using either libstdc++ provided by gcc 4.9 or libc++)
    • at least MSVC 15.0 (Visual Studio 2017)
    • other compilers might work
  • the cmake build system
    • at least version 3.18 is recommended
    • at least version 3.1 is required

Dependencies