# Chijin
[](https://github.com/lzpel/chijin/blob/main/LICENSE)
[](https://crates.io/crates/chijin)
Minimal Rust bindings for OpenCASCADE (OCC 7.9).
Provides safe, ergonomic wrappers around the OCC C++ kernel for:
- Reading/writing STEP and BRep formats (stream-based, no temp files)
- Constructing primitive shapes (box, cylinder, half-space)
- Boolean operations (union, subtract, intersect)
- Face/edge topology traversal
- Meshing with customizable tolerance
## Usage
Add this to your `Cargo.toml`:
```toml
[dependencies]
chijin = "0.1.0"
```
## Features
- `bundled` (default): Download and build OCCT 7.9.3 from source during `cargo build`.
The built library is installed into `target/occt/` inside the crate directory.
- `prebuilt`: Use a pre-built OCCT pointed to by the `OCCT_ROOT` environment variable.
`OCCT_ROOT` can be any directory that contains OCCT headers and static libraries —
including the `target/occt/` generated by a previous `bundled` build.
```toml
# Cargo.toml
chijin = { version = "0.2", features = ["prebuilt"], default-features = false }
```
```sh
export OCCT_ROOT=/path/to/occt
cargo build
```
## License
This project is licensed under the MIT License.