#catboost #bindings #api #bindgen #download #github #catboostlib

sys catboost-sys

Internal unsafe Rust bindings for catboostlib C apis using bindgen

5 releases

0.1.6 Oct 21, 2022
0.1.5 Oct 18, 2022
0.1.4 Oct 15, 2022
0.1.3 Sep 9, 2022
0.1.2 Sep 8, 2022

#4 in #catboost


Used in catboost-rs

MIT/Apache

39KB
675 lines

catboost-sys

  • Download catboost binary from https://github.com/catboost/catboost/releases/tag/v1.0.6.
    • If you are using Linux, download libcatboostmodel.so
    • If you are using MacOS, download libcatboostmodel.dylib
    • Place the file in /usr/lib/
    • Create a soft link to x.x.1, e.g. sudo ln -s libcatboostmodel.so libcatboostmodel.so.1

Introduction

Low level bindings for C API, adapted from https://github.com/catboost/catboost/tree/master/catboost/rust-package.

Major Differences vs official bindings

Major differences are:

  • We assume libcatboost shared library is already downloaded (see instructions below)
  • Splitting out from the main repo due to the catboost repo being very big
  • Most changes are in build.rs, no differences in the APIs
  • We keep a copy of the model_interface c_bindings from https://github.com/catboost/catboost/tree/v1.0.6/catboost/libs/model_interface in this repo to simplify things

Build Instructions

  • Make sure you have the dependencies for bindgen
apt-get install -y build-essential pkg-config libssl-dev libclang-dev clang cmake
  • Download catboost binary from https://github.com/catboost/catboost/releases/tag/v1.0.6.
    • If you are using Linux, download libcatboostmodel.so
    • If you are using MacOS, download libcatboostmodel.dylib
    • Place the file in /usr/lib/
    • Create a soft link to x.x.1, e.g. sudo ln -s libcatboostmodel.so libcatboostmodel.so.1
  • Build it with cargo build

No runtime deps

~0–2MB
~41K SLoC