smg-grpc-servicer
gRPC servicer implementations for LLM inference engines. Supports vLLM, MLX, TokenSpeed, and SGLang.
Installation
For vLLM:
pip install smg-grpc-servicer[vllm]
For MLX:
pip install smg-grpc-servicer[mlx]
For TokenSpeed, install the TokenSpeed runtime first, then install the servicer bridge:
pip install smg-grpc-servicer
For SGLang:
pip install smg-grpc-servicer[sglang]
Usage
vLLM
vllm serve meta-llama/Llama-2-7b-hf --grpc
Worker-side multimodal processing (media refs)
By default the smg router fetches and preprocesses images itself and sends pixel tensors. A vLLM gRPC worker can instead accept media references (URLs) and run vLLM's own multimodal processor:
SMG_VLLM_MM_PROCESSOR=inprocess vllm serve Qwen/Qwen3-VL-8B-Instruct --grpc \
--allowed-media-domains example.com
The worker then advertises mm_processor=inprocess and mm_media_ref_schemes
through GetServerInfo; a router with media-reference support forwards
media_refs only to workers that advertise, and a router without it ignores the
labels and keeps sending preprocessed tensors. vLLM's --allowed-media-domains,
--allowed-local-media-path, --media-io-kwargs, --limit-mm-per-prompt and
VLLM_*_FETCH_TIMEOUT govern fetching on the worker; without
--allowed-media-domains the worker fetches from any host the router forwards.
Related knobs: SMG_VLLM_MM_MAX_INFLIGHT (default 64) bounds concurrent media
jobs; SMG_VLLM_MM_MAX_ITEMS (default 16) caps references per request;
SMG_VLLM_MM_MAX_ITEM_BYTES (default 32 MiB) caps inline data: payloads.
MLX
python -m smg_grpc_servicer.mlx --model meta-llama/Llama-2-7b-hf --host 0.0.0.0 --port 50051
TokenSpeed
python -m smg_grpc_servicer.tokenspeed --model meta-llama/Llama-2-7b-hf --host 0.0.0.0 --port 50051
SGLang
sglang serve --model-path meta-llama/Llama-2-7b-hf --grpc-mode
Architecture
smg-grpc-servicer[vllm] ──optional dep──> vllm (lazy import)
smg-grpc-servicer[mlx] ──optional dep──> mlx-lm (lazy import)
smg-grpc-servicer ──external runtime──> tokenspeed (lazy import)
smg-grpc-servicer[sglang] ──optional dep──> sglang (lazy import)
smg-grpc-servicer ──depends on────> smg-grpc-proto (hard dependency)
vllm ──optional──────> smg-grpc-servicer (via vllm serve --grpc)
sglang ──optional──────> smg-grpc-servicer (via --grpc-mode)
Backend dependencies are isolated via extras or runtime installs to avoid conflicts between vLLM, MLX, TokenSpeed, and SGLang.
Development
See DEVELOPMENT.md for local development setup, CI, and release workflows.
Metadata
Release files for smg-grpc-servicer 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| smg_grpc_servicer-0.10.0.tar.gz | 141.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| smg_grpc_servicer-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 271.2 kB
Release files / smg_grpc_servicer-0.10.0.tar.gz
| Download URL | smg_grpc_servicer-0.10.0.tar.gz |
|---|---|
| Size | 141.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4fcdafbc4bddfc69647510458855c4c91c891ecfb648fbb87a0b57e088d16f2d
|
|
BLAKE2b-256 checksum How to use checksums |
67d70fc32fde035822ccf5247ffe8522a7cf3e02c8f57c7bd60df471969f7a3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / smg_grpc_servicer-0.10.0-py3-none-any.whl
| Download URL | smg_grpc_servicer-0.10.0-py3-none-any.whl |
|---|---|
| Size | 130.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e625e8a7918f12cfec3504d8598c405d050480d72cb08f52acfe65a9a1eb57ba
|
|
BLAKE2b-256 checksum How to use checksums |
e4b67d6518bee611048258fd2d8d6e2cb17d755e4cc44f0454305f749fdf26dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|