Metadata-Version: 2.5
Name: vllm-kvblockd
Version: 0.1.1
Summary: vLLM native KV-transfer adapter backed by kvblockd (KVConnectorBase_V1 + SecondaryTierManager)
Project-URL: Homepage, https://kvstash.com
Project-URL: Documentation, https://kvstash.com/integrations/vllm/
Project-URL: Get the daemon, https://kvstash.com/docs/install/
Author-email: Rudray Mehra <rudraymehra@gmail.com>
License-Expression: Apache-2.0
Requires-Python: >=3.10
Requires-Dist: blake3>=0.4
Requires-Dist: kvblockd>=0.1.0
Requires-Dist: numpy
Provides-Extra: test
Requires-Dist: pytest>=8; extra == 'test'
Requires-Dist: torch; extra == 'test'
Provides-Extra: vllm
Requires-Dist: vllm<0.34,>=0.22; extra == 'vllm'
Description-Content-Type: text/markdown

# vllm-kvblockd: vLLM KV connector for KVStash

Lets vLLM store prompt KV-cache blocks in a KVStash daemon and load them back instead of recomputing long
prompts, across engine restarts and across servers.

1. Get the daemon (free download) and start it: `curl -fsSL https://kvstash.com/install.sh | sh`, then
   https://kvstash.com/docs/quickstart/
2. Install next to vLLM: `pip install vllm-kvblockd`
3. Start vLLM with the connector:

```sh
export PYTHONHASHSEED=0   # required on every worker
vllm serve MODEL --kv-transfer-config '{
  "kv_connector": "KvblockdConnector",
  "kv_role": "kv_both",
  "kv_connector_module_path": "vllm_kvblockd.connector",
  "kv_connector_extra_config": {
    "kvblockd_endpoint": "kvblockd://STORE_HOST:9440",
    "kvblockd_namespace": "vllm",
    "kvblockd_token": "YOUR_TOKEN",
    "kvblockd_streams": 8,
    "kvblockd_get_fanout": 8
  }}'
```

Checked end to end with vLLM 0.33.0 (official image) on 8 November 2026: blocks stored, reloaded into a restarted
engine, same answer. One GPU per engine (tensor parallel 1).

- Setup, settings and limits: https://kvstash.com/integrations/vllm/
- Store on another machine or cloud: https://kvstash.com/docs/connect-an-engine/#network
- Troubleshooting: https://kvstash.com/docs/troubleshooting/
