warpllm
A warp-speed, robust AI gateway written for rust, node, and python applications - built for planet scale by the community.
Quickstart
pip install warpllm # python
npm install @warpllm/warpllm # node
cargo add warpllm # rust
export OPENAI_API_KEY=sk-...
Python
from warpllm import WarpLLM
client = WarpLLM()
completion = client.chat_completions({
"model": "openai/gpt-5-nano",
"messages": [{"role": "user", "content": "Hello!"}],
})
print(completion["choices"][0]["message"]["content"])
Node
import { WarpLLM } from '@warpllm/warpllm'
const client = new WarpLLM()
const completion = await client.chatCompletions({
model: 'openai/gpt-5-nano',
messages: [{ role: 'user', content: 'Hello!' }],
})
console.log(completion.choices[0].message.content)
Rust — chat_completions is async and warpllm ships no runtime, so bring
your own: cargo add tokio --features macros,rt-multi-thread.
use warpllm::{ChatCompletionRequestMessage, Client, ClientConfig, CreateChatCompletionRequest};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new(ClientConfig::default())?;
let completion = client
.chat_completions(CreateChatCompletionRequest {
model: "openai/gpt-5-nano".to_string(),
messages: vec![ChatCompletionRequestMessage {
role: "user".to_string(),
content: "Hello!".to_string(),
..Default::default()
}],
..Default::default()
})
.await?;
let content = completion.choices[0].message.content.as_deref();
println!("{}", content.unwrap_or_default());
Ok(())
}
Switching providers is a string change
Keys are read from the environment when the client is built, so export the one the provider needs and change the model string. Nothing else moves.
| Model string | Key it needs |
|---|---|
openai/gpt-5-nano |
OPENAI_API_KEY |
deepseek/deepseek-v4-flash |
DEEPSEEK_API_KEY |
kimi/kimi-k3 |
MOONSHOT_API_KEY |
openrouter/anthropic/claude-sonnet-4 |
OPENROUTER_API_KEY |
The provider/ prefix is required. warpllm matches the whole string against its
roster, so a bare gpt-5-nano — or any name it doesn't know — is an error
rather than a guess at an upstream default.
Runnable versions of all three, with comments, are in
examples/.
Mission
This project is to lay out the most resilient open source productionization layer for AI-deployments. Designed for you if you want:
- To work with multiple AI providers or your own models.
- To keep your AI services up and running with 0 downtime.
- Speed (minimal overhead latency).
- A granular view of your metrics (uptime, P95 latency, costs, etc).
- Control over:
- Where your data goes.
- Your AI budget across providers.
Status
[!IMPORTANT] The published packages are 0.3.0, which adds streaming — from the Rust core, both SDKs, and the HTTP gateway — alongside the Kimi provider and the rest of OpenAI's chat-completion roster. It is a breaking release: response fields that are optional and nullable now tell an absent key from an explicit
null, so their type changed in all three languages. See the changelog before upgrading from0.2.x.The OpenAI-compatible HTTP gateway has landed on
mainbut is not released yet.
| Released (0.3.0) | On main |
|
|---|---|---|
| OpenAI chat completions, non-streaming | Yes | Yes |
provider/model routing strings |
Provider registry | Provider registry |
| DeepSeek, OpenRouter | Yes | Yes |
| Kimi | Yes | Yes |
| OpenAI-compatible HTTP gateway | — | Unreleased |
| Streaming | Yes | Yes |
| Failover, load balancing, caching, metrics | — | — |
Unlisted models are rejected rather than guessed at, so routing a name warpllm doesn't know is an error, not a surprise upstream bill.
Layers
- An SDK - provide a request and we translate it to work with different providers and models out of box.
- [Unreleased] A proxy - run a self-hosted proxy that speaks the OpenAI API:
- [Coming Soon] Failover - define multiple models to handle outages / errors
- [Coming Soon] Load Balancing - define a % of requests to be handled per model
- [Coming Soon] Prompt Response Caching - define a TTL and avoid paying twice for the same prompt
Key focus points
- Native SDK support - Written once in rust, compiled for maximum performance, available for rust/typescript/python.
- Self hostable - Avoid vendor lock-in (e.g. from cloud provider or model provider), or data leaving your infra.
- Warp-speed execution - What we named ourselves after. Machine level code, faster than a typescript or python native library.
- Compact file size - Pre-compiled into binary format, not verbose text files.
Roadmap
The roadmap lives in GitHub issues — one issue per item, so direction is discussed where the work happens. Add a comment if you see something missing, or if something there matters enough to you that it should move up.
Contributing
We're excited to have you join us. See the contribution guide for how to get started.
A big thank you to the contributors below who have helped build this AI gateway to this point!
License
The warpllm core is open source under the Apache License 2.0.
Release files for warpllm 0.3.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 | |
|---|---|---|---|
| warpllm-0.3.0.tar.gz | 243.4 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| warpllm-0.3.0-cp310-abi3-win_arm64.whl | CPython 3.10 | abi3 | Windows ARM64 | Details |
| warpllm-0.3.0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| warpllm-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl | CPython 3.10 | abi3 | Linux musl 1.2+ x86-64 | Details |
| warpllm-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl | CPython 3.10 | abi3 | Linux musl 1.2+ ARM64 | Details |
| warpllm-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| warpllm-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| warpllm-0.3.0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| warpllm-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size:19.0 MB
Release files / warpllm-0.3.0.tar.gz
| Download URL | warpllm-0.3.0.tar.gz |
|---|---|
| Size | 243.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9917d94b8f4c610b889206ce0a71d3f4cbe55d011589597416d031bee134b988
|
|
BLAKE2b-256 checksum How to use checksums |
c42f3d2a3be6444de10b41624c7c4140b198da7cd3001d7e2fe88438903e8621
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / warpllm-0.3.0-cp310-abi3-win_arm64.whl
| Download URL | warpllm-0.3.0-cp310-abi3-win_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.10 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
ff16928dadbfa7bce8d12588e93d382289f451963c9edf452190760eec9a13a5
|
|
BLAKE2b-256 checksum How to use checksums |
348b2a275918d273ed6cc7cab580c57b28b8223a8fe04b323fbccf775f1753ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / warpllm-0.3.0-cp310-abi3-win_amd64.whl
| Download URL | warpllm-0.3.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
3a382ce304386fe98a07c8dd029f3af6cb574185c60a690b3a6f760c126d7dd7
|
|
BLAKE2b-256 checksum How to use checksums |
ac3a61a4fe9d88ed983c734582e1668463a0b1592bb935060bb53525177e3ec8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / warpllm-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl
| Download URL | warpllm-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
51bbb1f3741726d85ea9445af0a7642a2cbaa65b8f62309c924d0502cbc3308a
|
|
BLAKE2b-256 checksum How to use checksums |
dbd974d6598b47e8645415e4150d15e89e27ed6968f427e62f182a3c37dbfe61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / warpllm-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl
| Download URL | warpllm-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
6209280f11b6c87ce3eae196646eb902cb2ba6bda1806dc1914b102b76fd48f8
|
|
BLAKE2b-256 checksum How to use checksums |
cba346d1c1fbb9bf65838b3f9eca01db8016beadddedd82b2574155fd6a54fff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / warpllm-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | warpllm-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
f0ad9fa47a6a4f1fa275133ae17afa8f5e673cf85cf211c6c204d081655b60ba
|
|
BLAKE2b-256 checksum How to use checksums |
6035b08bbdff86b1737c1a29abf87ca299e4a4d226dc029f08ef945633612ee9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / warpllm-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | warpllm-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
46db91972733728916d241dbebdded0c15bfcd422938ecf1ba69f57030b27857
|
|
BLAKE2b-256 checksum How to use checksums |
21072d5baccb5d089e66d2d99d42ed8ff0eb2e18cbc6109cd338fd9b8ad0a26a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / warpllm-0.3.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | warpllm-0.3.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d7d3a41dd1e16c461ed069ced2488253430e7d54138611f26a3f6a09b2920bda
|
|
BLAKE2b-256 checksum How to use checksums |
b4dd5e6e4e0656fb54c76bfe392bb82df9e428b3b96759e511e3535e4903e3a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / warpllm-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | warpllm-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
bfdd1d4472bee04dd341c8c973c19e4b56e3d1a4d55d0222864f5cbe57b9acb8
|
|
BLAKE2b-256 checksum How to use checksums |
437b97e1881f0cf520e68338afa6085be94941ecd515840df14dbe7b41a837e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency log