README.md
June 21, 2026 ยท View on GitHub
CatBoost-Cgo
Evaluation library is the fastest way for inference a model CatBoost. The library provides a C API.
The C API interface can be accessed from any programming language (example Golang + Cgo).
Prebuilt shared library (*.so | *.dylib) artifacts are available of the releases page on GitHub CatBoost project.
The shared library:
- Should be in
/usr/local/lib - Or set path in environment
CATBOOST_LIBRARY_PATH - Or set path manual in source code
SetSharedLibraryPath(see example below)
For more information, see https://catboost.ai/en/docs/concepts/c-plus-plus-api_dynamic-c-pluplus-wrapper.
Compatibility
| Previous versions | v1.2.2 | v1.2.3 | v1.2.4 | v1.2.5 | v1.2.6 | v1.2.7 | v1.2.8 |
|---|---|---|---|---|---|---|---|
| ๐ซ (not testing) | โ | โ | โ | โ | โ | โ | โ |
Features
Supported functionality (https://catboost.ai/en/docs/concepts/python-quickstart):
- CatBoostRegressor โ
- CatBoostClassifier โ
- CatBoostRanker โ
Supported prediction types (https://github.com/catboost/catboost/blob/master/catboost/libs/model/enums.h):
- RawFormulaVal โ
- Probability โ
- Class โ
- RMSEWithUncertainty โ
- Exponent โ
Limitation
Supported operating system and architectures:
| Operating system | CPU architectures | GPU support using CUDA |
|---|---|---|
| MacOS | โ (x86_64) | ๐ซ |
| Linux | โ (x86_64) | โ (x86_64) |
| Windows 10 and 11 | ๐ซ | ๐ซ |
If you use GPU - only device 0 is supported for now. More details: https://github.com/catboost/catboost/issues/2774.
Supported Type:
- Numeric โ
- Categorical โ (https://catboost.ai/en/docs/features/categorical-features)
- Text โ (https://catboost.ai/en/docs/features/text-features)
- Embeddings ๐ซ (https://catboost.ai/en/docs/features/embeddings-features)
Installation
- Install catboost-cgo:
go get github.com/mirecl/catboost-cgo
-
Download CatBoost shared library from release page: https://github.com/catboost/catboost/releases
-
Save CatBoost shared library in
/usr/local/libor manual set path:
import (
cb "github.com/mirecl/catboost-cgo/catboost"
)
func main(){
cb.SetSharedLibraryPath(...)
}
- See examples of use