[build-system] requires = ["setuptools>=61.0", "setuptools-scm>=8.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "sglang" dynamic = ["version"] description = "SGLang is a fast serving framework for large language models and vision language models." readme = "README.md" requires-python = ">=3.10" license = { file = "LICENSE" } classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: Apache Software License", ] dependencies = [ "IPython", "aiohttp", "apache-tvm-ffi>=0.1.5,<0.2", "anthropic>=0.20.0", "blobfile==3.0.0", "build", "compressed-tensors", "cuda-python==12.9", "decord2", "datasets", "einops", "fastapi", "flashinfer_python==0.6.4", # keep it aligned with jit-cache version in Dockerfile "flashinfer_cubin==0.6.4", "gguf", "hf_transfer", "huggingface_hub", "interegular", "llguidance>=0.7.11,<0.8.0", "modelscope", "msgspec", "ninja", "numpy", "nvidia-cutlass-dsl>=4.3.4", "nvidia-ml-py", "openai-harmony==0.0.4", "openai==2.6.1", "orjson", "outlines==0.1.11", "packaging", "partial_json_parser", "pillow", "prometheus-client>=0.20.0", "psutil", "py-spy", "pybase64", "pydantic", "python-multipart", "pyzmq>=25.1.2", "quack-kernels==0.2.4", "requests", "scipy", "sentencepiece", "setproctitle", "sgl-fa4==4.0.3", "sgl-kernel==0.3.21", "soundfile==0.13.1", "tiktoken", "timm==1.0.16", "torch_memory_saver==0.0.9", "torch==2.9.1", "torchao==0.9.0", "torchaudio==2.9.1", "torchcodec==0.8.0 ; sys_platform != 'linux' or (sys_platform == 'linux' and platform_machine != 'aarch64' and platform_machine != 'arm64' and platform_machine != 'armv7l')", # torchcodec does not exist in those systems. If not provided, transformer will use torchvision instead by default. "torchvision", "tqdm", "transformers==4.57.1", "uvicorn", "uvloop", "watchfiles", "xgrammar==0.1.27", "smg-grpc-proto>=0.4.1", "grpcio>=1.78.0", "grpcio-reflection>=1.78.0", "grpcio-health-checking>=1.78.0", ] [[tool.uv.index]] name = "pypi" url = "https://pypi.org/simple" default = true [[tool.uv.index]] name = "torch-cu129" url = "https://download.pytorch.org/whl/cu129" explicit = true [tool.uv.sources] torch = [ { index = "pypi", marker = "platform_machine == 'x86_64'"}, { index = "torch-cu129", marker = "platform_machine == 'aarch64'"}, ] [project.optional-dependencies] checkpoint-engine = ["checkpoint-engine==0.1.2"] diffusion = [ "PyYAML==6.0.1", "cloudpickle==3.1.2", "diffusers==0.36.0", "imageio==2.36.0", "imageio-ffmpeg==0.5.1", "moviepy>=2.0.0", "opencv-python-headless==4.10.0.84", "remote-pdb==2.1.0", "st_attn==0.0.7 ; platform_machine != 'aarch64' and platform_machine != 'arm64'", "vsa==0.0.4 ; platform_machine != 'aarch64' and platform_machine != 'arm64'", "runai_model_streamer>=0.15.5", "cache-dit==1.2.3", "addict==2.4.0", "av==16.1.0", "scikit-image==0.25.2", "trimesh>=4.0.0", "xatlas", ] ray = [ "ray[default]>=2.54.0", ] tracing = [ "opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-exporter-otlp-proto-grpc", "opentelemetry-sdk", ] test = [ "accelerate", "bitsandbytes", "expecttest", "jsonlines", "lm-eval[api]>=0.4.9.2", "matplotlib", "pandas", "parameterized", "peft", "pytest", "sentence_transformers", "tabulate", ] dev = ["sglang[test]"] all = [ "sglang[diffusion]", "sglang[tracing]", ] [tool.uv.extra-build-dependencies] st-attn = ["torch", "setuptools"] vsa = ["torch", "setuptools"] [project.urls] "Homepage" = "https://github.com/sgl-project/sglang" "Bug Tracker" = "https://github.com/sgl-project/sglang/issues" [project.scripts] sglang = "sglang.cli.main:main" [tool.setuptools.package-data] "sglang" = [ "srt/**/*", "jit_kernel/**/*" ] [tool.setuptools.packages.find] exclude = [ "assets*", "benchmark*", "docs*", "dist*", "playground*", "scripts*", "tests*", ] [tool.wheel] exclude = [ "assets*", "benchmark*", "docs*", "dist*", "playground*", "scripts*", "tests*", ] [tool.setuptools_scm] root = ".." version_file = "sglang/_version.py" git_describe_command = ["bash", "-c", "git tag --list --sort=-version:refname 'v*.*.*' | head -1 | xargs git describe --tags --long"] # Allow editable installs even when .git metadata is not available. fallback_version = "0.0.0.dev0"