[build-system] requires = ["setuptools>=61.0", "setuptools-scm>=8.0", "setuptools-rust>=1.10", "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.9", "anthropic>=0.20.0", "blobfile==3.0.0", "build", "compressed-tensors", "cuda-python>=13.0", "decord2 ; sys_platform == 'linux' and (platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'armv7l')", "datasets", "einops", "fastapi", "flashinfer_python==0.6.8.post1", # keep it aligned with jit-cache version in Dockerfile "flashinfer_cubin==0.6.8.post1", "gguf", "interegular", "llguidance>=0.7.11,<0.8.0", "modelscope", "msgspec", "ninja", "easydict", # Required by remote model code (e.g. DeepSeek-OCR) loaded via trust_remote_code; validated by transformers 5.4+ check_imports "numpy", "nvidia-cutlass-dsl==4.4.2", "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.3.0", "requests", "scipy", "sentencepiece", "setproctitle", "flash-attn-4>=4.0.0b9", "sgl-deep-gemm==0.0.1", "sglang-kernel==0.4.2.post1", "soundfile==0.13.1", "tiktoken", "tilelang==0.1.8", "timm==1.0.16", "torch_memory_saver>=0.0.9.post1", "torch==2.11.0", "torchao==0.17.0", "torchaudio==2.11.0", "torchcodec==0.11.1 ; sys_platform != 'linux' or (sys_platform == 'linux' and platform_machine != 'aarch64' and platform_machine != 'arm64' and platform_machine != 'armv7l')", # torchcodec 0.11.1 for torch 2.11.x (0.10 is ABI-incompatible: references the pre-2.11 c10::MessageLogger ctor signature). Not available on Linux ARM. "av ; sys_platform == 'linux' and (platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'armv7l')", "torchvision", "tqdm", "mistral_common>=1.11.0", "transformers==5.6.0", "uvicorn", "uvloop", "watchfiles", "xgrammar==0.2.0", "smg-grpc-servicer>=0.5.0", "kernels", ] [[tool.uv.index]] name = "pypi" url = "https://pypi.org/simple" default = true [project.optional-dependencies] checkpoint-engine = ["checkpoint-engine==0.1.2"] runai = ["runai-model-streamer[s3,gcs,azure]>=0.15.7"] diffusion = [ "PyYAML==6.0.1", "cloudpickle==3.1.2", "diffusers==0.37.0", "imageio==2.36.0", "imageio-ffmpeg==0.5.1", "moviepy>=2.0.0", "nvidia-modelopt", "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.7", "cache-dit==1.3.0", "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", ] http2 = [ "granian>=2.6.0", ] fastokens = [ "fastokens>=0.1.1,<0.2.0", ] test = [ "accelerate", "addict", "bitsandbytes", "expecttest", "jsonlines", "lm-eval[api]>=0.4.9.2", "matplotlib", "pandas", "parameterized", "peft>=0.18.0", "polars", "pytest", "pytest-cov", "diff-cover", "sentence_transformers", "sglang[fastokens]", "tabulate", "granian>=2.6.0", ] dev = ["sglang[test]"] all = [ "sglang[diffusion]", "sglang[tracing]", "sglang[http2]", ] [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" killall_sglang = "sglang.cli.killall: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 = ["python3", "python/tools/get_version_tag.py"] # Allow editable installs even when .git metadata is not available. fallback_version = "0.0.0.dev0" [[tool.setuptools-rust.ext-modules]] target = "sglang.srt.grpc._core" path = "../rust/sglang-grpc/Cargo.toml" binding = "PyO3" [tool.kernels.dependencies] "kernels-community/sgl-flash-attn3" = 1