Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

vLLM RBLN Plugin

main-logo

PyPI version License Documentation Contributor Covenant

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-compiler
  • optimum-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-compiler nightly 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-compiler is separated into the runtime extra — it is required for NPU execution but excluded from the base dependency set. --extra runtime installs 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 run uv lock and commit uv.lock in the same PR — pre-commit rejects drift between the two.
  • CI installs with uv sync --locked, which fails if uv.lock doesn't match pyproject.toml.
  • Never edit uv.lock by 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:

  1. Request an external LDAP account via the Request RBLN SDK/Portal Access.
  2. Install rebel-compiler with that account, following the official guide.
  3. Install vllm-rbln on 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 nightly rebel-compiler included), so unless uv.lock is 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vllm_rbln-0.11.1a8-py3-none-any.whl (407.5 kB view details)

Uploaded Python 3

File details

Details for the file vllm_rbln-0.11.1a8-py3-none-any.whl.

File metadata

  • Download URL: vllm_rbln-0.11.1a8-py3-none-any.whl
  • Upload date:
  • Size: 407.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for vllm_rbln-0.11.1a8-py3-none-any.whl
Algorithm Hash digest
SHA256 ce757a711e0d09247b0451156fa824d4259bbfb6a81f743513d58b6dd9aa4f2a
MD5 bab0a91f4b2a77e54d930052edb97456
BLAKE2b-256 3060b2be4d8007708c5c2c8201c8258bb7d354efcaa45d4de8590611524bc820

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page