xgrammar

Crates.ioxgrammar
lib.rsxgrammar
version0.3.0
created_at2025-10-10 15:41:32.387305+00
updated_at2026-01-09 22:32:06.389067+00
descriptionRust bindings for XGrammar
homepage
repository
max_upload_size
id1877104
size8,050,179
Hyunsik Choi (hyunsik)

documentation

README

xgrammar-rs

This project uses xgrammar v0.1.29 as a submodule.

CI Deploy Docs

This project provides safe and idiomatic Rust bindings for the xgrammar C++ library. By wrapping the C++ implementation, this crate leverages Rust's memory safety andguarantees while providing access to xgrammar's high-performance and features for constraint decoding.

Prerequisites

Before building the project, ensure you have the following dependencies installed:

  • Rust toolchain: Install via rustup.
  • CMake: Required to build the underlying C++ xgrammar library.
  • C++ compiler: A modern C++ compiler that supports C++17 (Clang is highly recommended.)

Build

The C++ xgrammar library is included as a submodule and will be compiled automatically as part of the build process.

To build the project, run the following command:

cargo build --release

This will create a release build in the target/release directory.

Test

This project uses cargo-nextest for running tests. To execute all tests, run:

make test

You can also pass arguments to cargo nextest via the TEST_ARGS variable. For example, to run a specific test suite:

make test TEST_ARGS="--test test_grammar"
Commit count: 0

cargo fmt