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 |
#23 in #gemini-api
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
~6–14MB
~229K SLoC