This release is a pre-release and may not be stable for production use.
vLLM RBLN Plugin
This repository provides the hardware plugin that enables vLLM on RBLN NPUs, including ATOM and REBEL.
Built on top of vLLM’s Plugin System, it allows seamless integration with the vLLM ecosystem and provides high-throughput, low-latency LLM serving on RBLN hardware. Our plugin supports a wide range of popular LLMs and continues to expand to support all features enabled in vLLM, including advanced attention mechanisms.
🚀 Getting Started
📋 Prerequisites
rebel-compileroptimum-rbln
⚙️ Installation
You can install this project using pip or from source.
Install via PyPI
Using uv
uv pip install vllm-rbln --extra-index-url https://wheels.vllm.ai/0.22.0/cpu --torch-backend cpu
Using pip
pip install vllm-rbln --extra-index-url https://wheels.vllm.ai/0.22.0/cpu --extra-index-url https://download.pytorch.org/whl/cpu
Or from source
Using uv
git clone https://github.com/rbln-sw/vllm-rbln.git
cd vllm-rbln
uv pip install -e .
Using pip
git clone https://github.com/rbln-sw/vllm-rbln.git
cd vllm-rbln
pip install -e . --extra-index-url https://wheels.vllm.ai/0.22.0/cpu --extra-index-url https://download.pytorch.org/whl/cpu
🛠️ Development setup (uv)
Requirements:
- Linux x86_64 with access to the internal network (Nexus / internal PyPI)
- Python 3.12 for this dev workflow (
rebel-compilernightly wheels are currently cp312-only; the package itself targets 3.10-3.13)
Internal indexes require your LDAP account credentials (set once, e.g. in your shell profile):
export UV_INDEX_RBLN_NEXUS_NIGHTLY_USERNAME=<ldap-username>
export UV_INDEX_RBLN_NEXUS_NIGHTLY_PASSWORD=<ldap-password>
export UV_INDEX_REBELLIONS_USERNAME=<ldap-username>
export UV_INDEX_REBELLIONS_PASSWORD=<ldap-password>
rbln-release(pypi.rbln.ai) uses a separate account system; credentials for it are only needed if the lock ever resolves packages from that index.
Then install the locked, team-identical environment with a single command:
uv sync --extra runtime
rebel-compileris separated into theruntimeextra — it is required for NPU execution but excluded from the base dependency set.--extra runtimeinstalls it alongside the rest of the locked environment.
pyproject.toml vs uv.lock — what to edit when
| File | Role | Edit by hand? |
|---|---|---|
pyproject.toml |
Declares dependency ranges (what we're compatible with). Ships in the wheel as Requires-Dist. |
Yes |
uv.lock |
Pins the exact versions + hashes of the full graph (what dev/CI actually installs). Never shipped. | No — only via uv commands |
Common tasks:
# Add / remove / change a dependency range:
# edit pyproject.toml, then refresh the lock and commit BOTH files
uv lock
# Bump one package to the latest version allowed by pyproject (lock-only change):
uv lock --upgrade-package rebel-compiler
# Reproduce the CI-identical environment (never resolves, only installs the lock):
uv sync --extra runtime
Rules of thumb:
- If you edited
pyproject.toml, always runuv lockand commituv.lockin the same PR — pre-commit rejects drift between the two. - CI installs with
uv sync --locked, which fails ifuv.lockdoesn't matchpyproject.toml. - Never edit
uv.lockby hand.
To bump rebel-compiler to the latest nightly (do not edit pyproject.toml):
uv lock --upgrade-package rebel-compiler
# or pin a specific version:
uv lock --upgrade-package rebel-compiler==0.11.1.dev200
# commit the updated uv.lock
Available versions can be checked by browsing the index directly (e.g. https://nexus.mgmt.rbln.in/repository/pypi-group-nightly/simple/rebel-compiler/, LDAP login required), or:
curl -s -u "$UV_INDEX_RBLN_NEXUS_NIGHTLY_USERNAME:$UV_INDEX_RBLN_NEXUS_NIGHTLY_PASSWORD" \
https://nexus.mgmt.rbln.in/repository/pypi-group-nightly/simple/rebel-compiler/ \
| grep -oE 'rebel_compiler-[0-9][A-Za-z0-9.+]*' | sort -uV | tail -10
External contributors (no Rebellions internal network)
uv.lock pins packages to Rebellions-internal indexes, so uv sync only works
inside the internal network. Internal nightly builds of rebel-compiler are
not published externally. External contributors instead:
- Request an external LDAP account via the Request RBLN SDK/Portal Access.
- Install
rebel-compilerwith that account, following the official guide. - Install
vllm-rblnon top — everything else resolves from public indexes:
# 1. Create a venv and install rebel-compiler with your external LDAP account
# (per the official guide above):
uv venv --python 3.12
source .venv/bin/activate
# ... install rebel-compiler into this venv per the official instructions ...
# 2. Install vllm-rbln (rebel-compiler is an optional 'runtime' extra,
# so your separately installed copy is left untouched):
uv pip install -e ".[test]"
rebel-compiler is an optional runtime extra and is not pulled in by the
base test install, so the resolver never conflicts with your separately
installed copy. Everything else resolves from public indexes (PyPI,
wheels.vllm.ai, download.pytorch.org); internal indexes are skipped
automatically.
Note: this environment is not what CI reproduces. CI always builds from the committed
uv.lock(internal nightlyrebel-compilerincluded), so unlessuv.lockis updated, your PR is tested against the existing lock — not against the environment you built above. With a released SDK version some recent features may not work locally — CI is the source of truth for compatibility.
📚 Documentation
🤝 Contributing
We welcome all contributions! Whether it's reporting issues, proposing enhancements, or improving docs—your input helps make the project better.
See our CONTRIBUTING.md for more information.
📄 License
This project is licensed under the Apache License 2.0.
See the LICENSE file for more information.
📧 Contact
- Join discussions and get answers in our Developer Community
- Contact maintainers at support@rebellions.ai
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vllm_rbln-0.11.1a7-py3-none-any.whl.
File metadata
- Download URL: vllm_rbln-0.11.1a7-py3-none-any.whl
- Upload date:
- Size: 433.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14a5d86420d98b3d82319fa897f0727ad3977435628e0a25a51e1ff1658bfaa5
|
|
| MD5 |
4c0e82a4ff91ed1111882281edaf8220
|
|
| BLAKE2b-256 |
5888cda32419832a3f6b24bdb6912d842e6a204b1703a36dec97b6858a8d7f83
|