openai-oxide
Idiomatic Rust client for the OpenAI API — 1:1 parity with the official Python SDK.
Features
- Async-first (tokio + reqwest)
- Strongly typed requests and responses (serde)
- SSE streaming support
- Automatic retries with exponential backoff
- Builder pattern for requests
- Same resource structure as Python SDK:
client.chat().completions().create()
Quick Start
Add to Cargo.toml:
[]
= "0.1"
= { = "1", = ["full"] }
use ;
async
Streaming
use StreamExt;
use ;
async
Configuration
use ;
// From environment variable OPENAI_API_KEY
let client = from_env?;
// Explicit API key
let client = new;
// Full configuration
let config = new
.base_url
.timeout_secs
.max_retries;
let client = with_config;
Implemented APIs
| API | Method | Status |
|---|---|---|
| Chat Completions | client.chat().completions().create() |
Done |
| Chat Completions (streaming) | client.chat().completions().create_stream() |
Done |
| Responses | client.responses().create() |
Done |
| Embeddings | client.embeddings().create() |
Done |
| Models | client.models().list() / retrieve() / delete() |
Done |
| Images | client.images().generate() / edit() / create_variation() |
Done |
| Audio Transcription | client.audio().transcriptions().create() |
Done |
| Audio Translation | client.audio().translations().create() |
Done |
| Audio Speech (TTS) | client.audio().speech().create() |
Done |
| Files | client.files().create() / list() / retrieve() / delete() / content() |
Done |
| Fine-tuning | client.fine_tuning().jobs().create() / list() / cancel() / list_events() |
Done |
| Moderations | client.moderations().create() |
Done |
| Batches | client.batches().create() / list() / retrieve() / cancel() |
Done |
| Uploads | client.uploads().create() / cancel() / complete() |
Done |
| Assistants (beta) | client.beta().assistants().create() / list() / retrieve() / delete() |
Done |
| Threads (beta) | client.beta().threads().create() / retrieve() / delete() / messages() |
Done |
| Runs (beta) | client.beta().runs(thread_id).create() / retrieve() / cancel() |
Done |
| Vector Stores (beta) | client.beta().vector_stores().create() / list() / retrieve() / delete() |
Done |
Development
License
MIT