| Crates.io | fast-gicp-sys |
| lib.rs | fast-gicp-sys |
| version | 0.3.0 |
| created_at | 2025-06-27 08:28:24.185369+00 |
| updated_at | 2025-06-29 08:41:30.729777+00 |
| description | Low-level FFI bindings for fast_gicp C++ library |
| homepage | https://github.com/jerry73204/fast_gicp_rust |
| repository | https://github.com/jerry73204/fast_gicp_rust.git |
| max_upload_size | |
| id | 1728328 |
| size | 347,404 |
Low-level FFI bindings for the fast_gicp C++ library.
No external dependencies required when using the docs-only feature.
openmp (default): Enable OpenMP parallelizationcuda: Enable CUDA GPU accelerationbindgen: Regenerate bindings from C++ headers (requires all dependencies)docs-only: Skip C++ compilation, use pre-generated bindings onlyThis crate includes pre-generated CXX bindings in src/generated/ to support documentation builds on docs.rs where C++ dependencies are not available.
When making changes to the FFI interface, you must regenerate the bindings:
# From the project root
make generate-bindings
# Or manually
cd fast-gicp-sys
cargo build --features bindgen
Important: Always commit the updated files in src/generated/ to ensure docs.rs builds continue to work.
The binding generation process uses a two-phase approach:
cxx::bridge definition from src/lib.rs (via ffi_definition module)src/generated/bindings.rs: Full FFI bindings (used by default)src/generated/stub.rs: Stub implementations with unreachable!() for docs.rsThe build script automatically handles conditional compilation:
bindings.rsdocs-only feature: Skips C++ compilation and uses stub.rsbindgen feature: Regenerates both files from the source definitionsrc/lib.rs (in the ffi_definition module)cargo buildmake generate-bindingscargo build --no-default-features --features docs-onlymake lint (from project root)cargo expand --lib > expanded.rssrc/generated/ files