Expand description
§gemini-rust
A Rust client library for Google’s Gemini API.
§Crate Organization
This crate is organized into domain-specific modules that align with the Gemini API’s capabilities:
interactions- Interactions API (recommended) — unified interface for models and agentsgeneration- LegacygenerateContentAPI (deprecated, still available)embedding- Text embedding generation for semantic analysisbatch- Batch processing for multiple requestsfiles- File upload and managementcache- Content caching for reusable contextssafety- Content moderation and safety settingstools- Function calling and tool integrationfile_search- Retrieval augmented generation (RAG)models- Core primitive types shared across modulesprelude- Convenient re-exports of commonly used types
§Quick Start
For most use cases, import from the prelude:
use gemini_rust::prelude::*;For more specialized types, import them directly from the crate root or their respective modules.
§Interactions API (Recommended)
The Interactions API is the simplest and best way to use Gemini models and agents:
let interaction = client.create_interaction()
.with_model("gemini-2.5-flash")
.with_text("Hello, world!")
.execute()
.await?;
println!("{}", interaction.output_text());Re-exports§
pub use client::Error as ClientError;pub use client::Gemini;pub use client::GeminiBuilder;pub use client::GenerationStream;pub use client::Model;pub use generation::builder::ContentBuilder;Deprecated pub use generation::model::BlockReason;pub use generation::model::Candidate;pub use generation::model::CitationMetadata;pub use generation::model::CitationSource;pub use generation::model::CountTokensResponse;pub use generation::model::FinishReason;pub use generation::model::GenerateContentRequest;Deprecated pub use generation::model::GenerationConfig;Deprecated pub use generation::model::GenerationResponse;Deprecated pub use generation::model::GroundingChunk;pub use generation::model::GroundingMetadata;pub use generation::model::GroundingSegment;pub use generation::model::GroundingSupport;pub use generation::model::MapsGroundingChunk;pub use generation::model::MediaResolution;pub use generation::model::MediaResolutionLevel;pub use generation::model::MultiSpeakerVoiceConfig;pub use generation::model::PrebuiltVoiceConfig;pub use generation::model::PromptFeedback;pub use generation::model::PromptTokenDetails;pub use generation::model::SpeakerVoiceConfig;pub use generation::model::SpeechConfig;pub use generation::model::ThinkingConfig;pub use generation::model::ThinkingLevel;pub use generation::model::UsageMetadata;pub use generation::model::VoiceConfig;pub use generation::model::WebGroundingChunk;pub use interactions::InteractionBuilder;pub use interactions::InteractionEvent;pub use interactions::InteractionHandle;pub use interactions::InteractionStream;pub use interactions::StepDeltaData;pub use embedding::builder::EmbedBuilder;pub use embedding::model::BatchContentEmbeddingResponse;pub use embedding::model::BatchEmbedContentsRequest;pub use embedding::model::ContentEmbedding;pub use embedding::model::ContentEmbeddingResponse;pub use embedding::model::EmbedContentRequest;pub use embedding::model::TaskType;pub use safety::model::HarmBlockThreshold;pub use safety::model::HarmCategory;pub use safety::model::HarmProbability;pub use safety::model::SafetyRating;pub use safety::model::SafetySetting;pub use tools::model::CodeExecutionConfig;pub use tools::model::CodeExecutionOutcome;pub use tools::model::CodeExecutionResult;pub use tools::model::CodeLanguage;pub use tools::model::ExecutableCode;pub use tools::model::FunctionCall;pub use tools::model::FunctionCallingConfig;pub use tools::model::FunctionCallingMode;pub use tools::model::FunctionDeclaration;pub use tools::model::FunctionResponse;pub use tools::model::GoogleMapsConfig;pub use tools::model::LatLng;pub use tools::model::RetrievalConfig;pub use tools::model::Tool;pub use tools::model::ToolConfig;pub use batch::builder::BatchBuilder;pub use batch::handle::BatchGenerationResponseItem;pub use batch::handle::BatchHandle;pub use batch::handle::BatchHandle as Batch;pub use batch::handle::BatchStatus;pub use batch::handle::Error as BatchHandleError;pub use batch::model::BatchConfig;pub use batch::model::BatchGenerateContentRequest;pub use batch::model::BatchOperation;pub use batch::model::BatchStats;pub use batch::model::IndividualRequestError;pub use batch::model::RequestMetadata;pub use batch::Error as BatchError;pub use files::builder::FileBuilder;pub use files::handle::FileHandle;pub use files::model::File;pub use files::model::FileState;pub use files::Error as FilesError;pub use cache::builder::CacheBuilder;pub use cache::handle::CachedContentHandle;pub use cache::model::CacheExpirationRequest;pub use cache::model::CacheExpirationResponse;pub use cache::model::CachedContent;pub use cache::model::CreateCachedContentRequest;pub use file_search::model::ChunkingConfig;pub use file_search::model::CustomMetadata;pub use file_search::model::CustomMetadataValue;pub use file_search::model::Document;pub use file_search::model::DocumentState;pub use file_search::model::FileSearchStore;pub use file_search::model::Operation;pub use file_search::model::OperationResult;pub use file_search::model::Status;pub use file_search::model::StringList;pub use file_search::model::WhiteSpaceConfig;pub use file_search::DocumentBuilder;pub use file_search::DocumentHandle;pub use file_search::FileSearchStoreBuilder;pub use file_search::FileSearchStoreHandle;pub use file_search::ImportBuilder;pub use file_search::OperationHandle;pub use file_search::UploadBuilder;pub use interactions::model::*;
Modules§
- batch
- Batch processing for multiple generation requests
- cache
- Content caching for reusable contexts and system instructions
- client
- common
- Common utilities and serialization helpers
- embedding
- Text embedding generation for semantic analysis
- file_
search - File search for retrieval augmented generation (RAG)
- files
- File upload and management
- generation
- Content generation including text, images, and audio
- interactions
- Interactions API — the modern interface for Gemini models and agents Interactions API — the modern interface for Gemini models and agents.
- prelude
- Convenient re-exports of commonly used types
- safety
- Content moderation and safety settings
- tools
- Function calling and tool integration
Structs§
- Blob
- Core primitive types for building requests and parsing responses Blob for a message part
- Content
- Core primitive types for building requests and parsing responses Content of a message
- File
Data - Core primitive types for building requests and parsing responses Coordinates for a previously uploaded file.
- Message
- Core primitive types for building requests and parsing responses Message in a conversation
Enums§
- Modality
- Core primitive types for building requests and parsing responses Content modality type - specifies the format of model output
- Part
- Core primitive types for building requests and parsing responses Content part that can be included in a message
- Role
- Core primitive types for building requests and parsing responses Role of a message in a conversation