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.23rc2-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.23rc2-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.23rc2-cp313-cp313-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for b10_xgrammar-0.1.23rc2-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 1aaecbe8c84a380a4d05cdd0d0ac21b3682b330b2d923329562b63152df783e2
MD5 c2339032db075372399e969151669546
BLAKE2b-256 17b0d81bef55a0e6736b9ad7133e874a0adad01b082d385c52f41a290e471ec6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for b10_xgrammar-0.1.23rc2-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 5c6298e01bb6bb8fc75c58419309dec791167419b561ac89ba3aa45de4bb73ba
MD5 451a3582fdae85e1c1a9b589da8da903
BLAKE2b-256 5bb2c993c92ef166ac695e0536dc9f75f6bdf49ddb86b5529c1f341a94694848

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