17 releases (6 stable)
Uses new Rust 2024
2.0.0 | Jun 11, 2025 |
---|---|
1.4.0 | Jun 11, 2025 |
1.3.0 | May 18, 2025 |
1.1.0 | Mar 19, 2025 |
0.4.2 | Nov 15, 2024 |
#358 in Web programming
484 downloads per month
Used in whathaveidone
49KB
978 lines
STILL A WIP
A library to use Google Gemini's API directly in Rust! Made because the current options weren't very capable and didn't support 100% of the official API.
Example
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
println!(
"{}",
gemini_rs::chat("gemini-2.0-flash")
.send_message("Explain how AI works")
.await?
);
Ok(())
}
lib.rs
:
A Rust client library for Google's Gemini AI models.
Overview
This library provides a fully-featured client for interacting with Google's Gemini AI models, supporting all major API features including:
- Text generation and chat conversations
- JSON-structured outputs
- Function calling
- Safety settings and content filtering
- System instructions
- Model configuration (temperature, tokens, etc.)
Authentication
The client requires a Gemini API key which can be provided in two ways:
- Environment variable:
GEMINI_API_KEY
- Programmatically:
Client::new(api_key)
Basic Usage
#[tokio::main]
async fn main() -> gemini_rs::Result<()> {
// Simple chat interaction
let response = gemini_rs::chat("gemini-2.0-flash")
.send_message("What is Rust's ownership model?")
.await?;
println!("{}", response);
Ok(())
}
Advanced Features
The library supports advanced Gemini features through the Client
and Chat
types:
- Model management (
client().models()
) - Custom generation settings (
chat.config_mut()
) - Safety settings (
chat.safety_settings()
) - System instructions (
chat.system_instruction()
) - Conversation history management (
chat.history_mut()
)
Dependencies
~7–19MB
~236K SLoC