Skip to main content

Efficient, Flexible and Portable Structured Generation

Project description

logo

Documentation License PyPI PyPI Downloads Ask DeepWiki

Efficient, Flexible and Portable Structured Generation

Get Started | Documentation | Blogpost | Technical Report

News

  • [2025/02] XGrammar has been officially integrated into Modular's MAX
  • [2025/01] XGrammar has been officially integrated into TensorRT-LLM.
  • [2024/12] XGrammar has been officially integrated into vLLM.
  • [2024/12] We presented research talks on XGrammar at CMU, UC Berkeley, MIT, THU, SJTU, Ant Group, LMSys, Qingke AI, Camel AI. The slides can be found here.
  • [2024/11] XGrammar has been officially integrated into SGLang.
  • [2024/11] XGrammar has been officially integrated into MLC-LLM.
  • [2024/11] We officially released XGrammar v0.1.0!

Overview

XGrammar is an open-source library for efficient, flexible, and portable structured generation.

It leverages constrained decoding to ensure 100% structural correctness of the output. It supports general context-free grammar to enable a broad range of structures, including JSON, regex, custom context-free grammar, etc.

XGrammar uses careful optimizations to achieve extremely low overhead in structured generation. It has achieved near-zero overhead in JSON generation, making it one of the fastest structured generation engines available.

XGrammar features universal deployment. It supports:

  • Platforms: Linux, macOS, Windows
  • Hardware: CPU, NVIDIA GPU, AMD GPU, Apple Silicon, TPU, etc.
  • Languages: Python, C++, and JavaScript APIs
  • Models: Qwen, Llama, DeepSeek, Phi, Gemma, etc.

XGrammar is very easy to integrate with LLM inference engines. It is the default structured generation backend for most LLM inference engines, including vLLM, SGLang, TensorRT-LLM, and MLC-LLM, as well as many other companies. You can also try out their structured generation modes!

Get Started

Install XGrammar:

pip install xgrammar

Import XGrammar:

import xgrammar as xgr

Please visit our documentation to get started with XGrammar.

Adoption

XGrammar has been adopted by many projects and companies, including but not limited to:

WebLLM

Citation

If you find XGrammar useful in your research, please consider citing our paper:

@article{dong2024xgrammar,
  title={Xgrammar: Flexible and efficient structured generation engine for large language models},
  author={Dong, Yixin and Ruan, Charlie F and Cai, Yaxing and Lai, Ruihang and Xu, Ziyi and Zhao, Yilong and Chen, Tianqi},
  journal={Proceedings of Machine Learning and Systems 7},
  year={2024}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

b10_xgrammar-0.1.23rc3-cp313-cp313-manylinux_2_38_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ x86-64

b10_xgrammar-0.1.23rc3-cp312-cp312-manylinux_2_38_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ x86-64

File details

Details for the file b10_xgrammar-0.1.23rc3-cp313-cp313-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for b10_xgrammar-0.1.23rc3-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 c1c004e73cc04b36a59df8efe8b45bc4c4ea995ceccdd2a0f8079dd50070ed28
MD5 38377c04704cedd5b7abfaf5a1e0989f
BLAKE2b-256 7e1484c918897f96cfaf01020454f12d6e31b2ed86ebca19675d8f4dd4fcca1f

See more details on using hashes here.

File details

Details for the file b10_xgrammar-0.1.23rc3-cp312-cp312-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for b10_xgrammar-0.1.23rc3-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 f2542a3d052c1eaf01d7fc0abb5deaccb3ec32846af5248754efdd9d7a39959d
MD5 f48d34f93df7d8c545b22c3ad18a27f7
BLAKE2b-256 1a1976101949cb8c5801149329fc8696f2c2b5bd71640d2f004c691cf6107e2a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page