[package] name = "sglang-grpc" description = "In-process Rust gRPC server for SGLang" version.workspace = true edition.workspace = true license.workspace = true # Consumed by python/setup.py: registers this crate as a PyO3 extension module # of the main sglang wheel at the given import path. [package.metadata.sglang] python-module = "sglang.srt.rust_extensions._grpc" # build.rs compiles schemas from outside the Rust workspace; include them in # the source-loader artifact fingerprint. source-inputs = ["../../proto"] # Always build optimized, even for an editable install. debug = false [lib] # Unique per-crate artifact name (the shared workspace target/ dir cannot hold # two `lib_core` cdylibs). The importable Python module is still `_core`: the # name comes from the `#[pymodule]` entry point and the setuptools-rust # `target` in python/pyproject.toml, which renames the built artifact. name = "sglang_grpc_core" crate-type = ["cdylib"] [dependencies] async-stream = { workspace = true } pyo3 = { workspace = true } serde_json = { workspace = true } tokio = { workspace = true } tokio-stream = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true } uuid = { workspace = true } prost = "0.13" tokenizers = { version = "0.21", default-features = false, features = ["onig"] } tonic = { version = "0.12", features = ["gzip", "transport"] } [build-dependencies] tonic-build = "0.12" # Fallback protoc for machines without a system install (see build.rs); keeps # `cargo clippy/check/build` and lint CI working without apt/brew protobuf. protoc-bin-vendored = "3" [features] default = ["pyo3/extension-module"]