cue-rs
Rust bindings for the CUE language runtime, built as a wrapper around libcue — the official C interface to the CUE Go runtime.
[!WARNING] The API is unstable and could change in the future.
libcue exposes the CUE evaluation engine (written in Go) as a C API via cgo. The build script compiles it into a static archive (libcue.a) which is then statically linked into the Rust crate, exposing a safe Rust API on top.
flowchart TD
subgraph libcue ["libcue (libcue.a)"]
Go["🐹 Go (CUE runtime)"]
C["⚙️ C interface (cgo)"]
Go --> C
end
libcue -->|"statically linked"| Rust["🦀 Rust"]
Requirements
- Go 1.24+ — the Go toolchain is required.
Usage
use ;
let ctx = new.unwrap;
let v = compile_string.unwrap;
v.is_valid.unwrap;
println!;
Examples
More examples can be found in the examples/ directory.