xAI SDK
A comprehensive Rust SDK for xAI's API, providing type-safe gRPC clients for all xAI services including Grok language models, embeddings, image generation, and more.
Features
- Complete API Coverage: Full gRPC client implementation for all xAI services
- Type Safety: Auto-generated Rust types from Protocol Buffers
- Async/Await: Built on Tokio for high-performance async operations
- Multiple Models: Support for all xAI language models (Grok-2, Grok-3, etc.)
- Streaming Support: Real-time streaming for chat completions and text generation
- Secure: TLS encryption with automatic certificate validation
- Production Ready: Comprehensive error handling and connection management
Quick Start
Prerequisites
- Rust 1.70+ installed
- xAI API key
Installation
Add to your Cargo.toml:
[]
= "0.1.0"
= { = "1.0", = ["full"] }
= "1.0"
Running the Examples
-
Set your API key as an environment variable:
-
Run the text generation example:
-
Run the chat completion example:
-
Run the streaming chat example:
-
Test your connection:
Usage Examples
Text Generation
use ;
use Request;
let mut client = connect.await?;
let request = new;
let response = client.sample_text.await?;
println!;
Chat Completion
use ;
use Request;
let mut client = connect.await?;
let message = Message ;
let request = new;
let response = client.get_completion.await?;
println!;
API Services
The SDK provides clients for all xAI services:
Chat Service
GetCompletion- Blocking chat completionGetCompletionChunk- Streaming chat completionStartDeferredCompletion- Async completion with pollingGetDeferredCompletion- Retrieve async results
Sample Service
SampleText- Raw text generationSampleTextStreaming- Streaming text generation
Models Service
ListLanguageModels- List available language modelsListEmbeddingModels- List embedding modelsListImageGenerationModels- List image generation models
Embed Service
Embed- Generate embeddings from text or images
Image Service
GenerateImage- Create images from text prompts
Auth Service
get_api_key_info- Get API key information
Configuration
The SDK supports comprehensive configuration options:
- Temperature: Controls randomness (0.0 to 2.0)
- Top-p: Nucleus sampling parameter (0.0 to 1.0)
- Max tokens: Maximum tokens to generate
- Log probabilities: Enable detailed token probability logging
- Multiple completions: Generate multiple responses per request
- Stop sequences: Custom stop conditions
- Frequency/Presence penalties: Control repetition and topic diversity
Security
- TLS Encryption: Automatic HTTPS with certificate validation
- Authentication: Bearer token support for API key authentication
- Secure by Default: No manual TLS configuration required
Error Handling
Comprehensive error handling for:
- Connection errors and timeouts
- Authentication failures
- API rate limiting
- Invalid parameters
- Network issues
Development
This SDK is built using:
- Protocol Buffers: Auto-generated Rust types from xAI's
.protodefinitions - Tonic: Modern gRPC framework for Rust with async/await support
- Prost: High-performance Protocol Buffer implementation
- Tokio: Async runtime for Rust
The code is generated from xAI's official Protocol Buffer definitions, ensuring compatibility and type safety.
License
This project is licensed under the MIT License.