ik-llama-cpp-sys 0.1.2

Low level bindings to ik_llama.cpp (ikawrakow's SOTA-quant fork)
Documentation
[package]
name = "ik-llama-cpp-sys"
description = "Low level bindings to ik_llama.cpp (ikawrakow's SOTA-quant fork)"
version = "0.1.2"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/replikeit/ik-llama-cpp-rs"
readme = "README.md"
links = "ik_llama"

# `cargo publish` packaging: bundle ONLY the vendored ik_llama.cpp source the
# build actually compiles (the submodule's full tree is ~114 MB — models, docs,
# tests, most examples, github-data are excluded). The CMake build runs with
# LLAMA_BUILD_TESTS/EXAMPLES/SERVER=OFF, so those subtrees are not needed;
# examples/mtmd is compiled separately by cc for the `mtmd` feature, and
# vendor/cpp-httplib is an unconditional add_subdirectory.
include = [
    "/build.rs",
    "/README.md",
    "/wrapper.h",
    "/wrapper_common.h",
    "/wrapper_common.cpp",
    "/wrapper_grammar.h",
    "/wrapper_grammar.cpp",
    "/wrapper_mtmd.h",
    "/wrapper_utils.h",
    "/src",

    "/ik_llama.cpp/CMakeLists.txt",
    "/ik_llama.cpp/cmake/**/*",
    "/ik_llama.cpp/convert_hf_to_gguf.py",
    # CMake helper scripts + configure_file templates referenced during the build
    # (build-info generation, *.pc.in, llama-config.cmake.in, FindSIMD, ...).
    "/ik_llama.cpp/**/*.cmake",
    "/ik_llama.cpp/**/*.in",

    "/ik_llama.cpp/include/*.h",

    "/ik_llama.cpp/ggml/CMakeLists.txt",
    "/ik_llama.cpp/ggml/cmake/**/*",
    "/ik_llama.cpp/ggml/include/*.h",
    "/ik_llama.cpp/ggml/src/**/*",

    "/ik_llama.cpp/src/CMakeLists.txt",
    "/ik_llama.cpp/src/**/*.h",
    "/ik_llama.cpp/src/**/*.hpp",
    "/ik_llama.cpp/src/**/*.c",
    "/ik_llama.cpp/src/**/*.cpp",

    "/ik_llama.cpp/common/CMakeLists.txt",
    "/ik_llama.cpp/common/**/*.h",
    "/ik_llama.cpp/common/**/*.hpp",
    "/ik_llama.cpp/common/**/*.cpp",
    "/ik_llama.cpp/common/*.in",

    "/ik_llama.cpp/vendor/**/*",

    "/ik_llama.cpp/examples/mtmd/**/*",
]

# docs.rs builds only bindgen (the build.rs DOCS_RS guard skips the CMake build).
[package.metadata.docs.rs]
features = ["common"]
no-default-features = false

[dependencies]

[build-dependencies]
bindgen = { workspace = true }
cc = { workspace = true, features = ["parallel"] }
cmake = { workspace = true }
walkdir = { workspace = true }

[features]
# v1 default: CPU core, no `common`/MTP. `common` is opt-in (needed for MTP).
default = []
# Build ik_llama.cpp's `common/` static library + the wrapper_common.cpp glue
# (JSON-schema-to-grammar + MTP speculative). Required for the MtpSpeculative API.
common = []
# Build ik_llama.cpp's `examples/mtmd/` multimodal library (libmtmd: mtmd.cpp,
# mtmd-audio.cpp, clip.cpp, mtmd-helper.cpp) + a dedicated C++-mode bindgen pass
# emitting the `mtmd_*` bindings. Independent of `common`.
mtmd = []
cuda = []
cuda-no-vmm = ["cuda"]
vulkan = []
openmp = []
static-openmp = ["openmp"]
static-stdcxx = []
shared-stdcxx = []
dynamic-link = []
# Build with GGML_NATIVE=ON (host-CPU tuning). Off by default for portable artifacts.
native = []
# NOTE: there is no `system-ggml` feature — ik has no LLAMA_USE_SYSTEM_GGML / ggml-config.cmake.
# Linking a prebuilt ik is done via the `IK_LLAMA_CPP_LIB_DIR` env contract in build.rs.