Skip to main content

openrouter/
lib.rs

1#![doc = include_str!("../docs/recipes/quickstart.md")]
2//!
3//! # More recipes
4//!
5//! - [Streaming](https://github.com/hra42/openrouter-rust/blob/main/docs/recipes/streaming.md)
6//! - [Tools](https://github.com/hra42/openrouter-rust/blob/main/docs/recipes/tools.md)
7//! - [Structured outputs](https://github.com/hra42/openrouter-rust/blob/main/docs/recipes/structured_outputs.md)
8//! - [Multimodal](https://github.com/hra42/openrouter-rust/blob/main/docs/recipes/multimodal.md)
9//! - [Provider routing](https://github.com/hra42/openrouter-rust/blob/main/docs/recipes/provider_routing.md)
10//! - [ZDR](https://github.com/hra42/openrouter-rust/blob/main/docs/recipes/zdr.md)
11//! - [Key management](https://github.com/hra42/openrouter-rust/blob/main/docs/recipes/key_management.md)
12
13#![allow(clippy::result_large_err)]
14#![deny(missing_docs)]
15
16pub mod client;
17pub mod error;
18pub mod mcp;
19pub mod oauth;
20mod request;
21#[cfg(feature = "beta")]
22pub mod responses;
23pub mod retry;
24pub mod stream;
25pub mod tool_call_accumulator;
26pub mod types;
27pub mod webhooks;
28
29pub use client::{Client, ClientBuilder};
30pub use error::{Error, Result};
31pub use retry::RetryConfig;
32pub use stream::EventStream;
33pub use tool_call_accumulator::ToolCallAccumulator;
34pub use types::{
35    create_file_parser_plugin, create_user_message_with_audio,
36    create_user_message_with_audio_bytes, create_user_message_with_base64_image,
37    create_user_message_with_base64_image_bytes, create_user_message_with_base64_pdf,
38    create_user_message_with_files, create_user_message_with_image,
39    create_user_message_with_image_detail, create_user_message_with_images,
40    create_user_message_with_pdf, create_user_message_with_text_content,
41    create_user_message_with_text_file, create_user_message_with_text_files,
42    encode_image_bytes_to_base64, encode_image_to_base64, ActivityData, ActivityOptions,
43    ActivityResponse, Annotation, ApiKey, AudioFormat, ChatCompletionRequest,
44    ChatCompletionResponse, Choice, CompletionRequest, CompletionResponse, Content, ContentBuilder,
45    ContentPart, CreateKeyRequest, CreateKeyResponse, CreditsData, CreditsResponse, DeleteKeyData,
46    DeleteKeyResponse, Delta, File, FileAnnotation, FileParserEngine, FilePdfConfig,
47    FilePluginConfig, FileRef, FunctionCall, FunctionDef, GetKeyByHashResponse, ImageDetail,
48    ImageUrl, InputAudio, KeyData, KeyRateLimit, KeyResponse, ListKeysOptions, ListKeysResponse,
49    ListModelsOptions, Message, Model, ModelArchitecture, ModelDefaultParameters, ModelEndpoint,
50    ModelEndpointPricing, ModelEndpointsArchitecture, ModelEndpointsData, ModelEndpointsResponse,
51    ModelPerRequestLimits, ModelPricing, ModelTopProvider, ModelsResponse, Plugin, Provider,
52    ProviderInfo, ProvidersResponse, ReasoningConfig, ResponseFormat, Role, Tool, ToolCall,
53    ToolChoice, UpdateKeyRequest, UpdateKeyResponse, UrlCitation, Usage, WebPluginConfig,
54};
55pub use types::{
56    AssignKeysRequest, AssignKeysResponse, AssignMembersRequest, AssignMembersResponse,
57    BulkAddWorkspaceMembersResponse, BulkRemoveWorkspaceMembersResponse, CreateGuardrailRequest,
58    CreateWorkspaceRequest, CreateWorkspaceResponse, DeleteGuardrailResponse,
59    DeleteWorkspaceResponse, GetWorkspaceResponse, Guardrail, GuardrailKeyAssignment,
60    GuardrailMemberAssignment, ListGuardrailKeyAssignmentsResponse,
61    ListGuardrailMemberAssignmentsResponse, ListGuardrailsOptions, ListGuardrailsResponse,
62    ListOrganizationMembersOptions, ListOrganizationMembersResponse, ListWorkspacesOptions,
63    ListWorkspacesResponse, OrganizationMember, OrganizationMemberRole, PercentileStats,
64    PublicEndpoint, PublicEndpointPricing, RerankDocument, RerankRequest, RerankResponse,
65    RerankResult, RerankUsage, ResetInterval, SpeechFormat, SpeechProvider, SpeechRequest,
66    SpeechResponse, UpdateGuardrailRequest, UpdateWorkspaceRequest, UpdateWorkspaceResponse,
67    VideoAspectRatio, VideoContentPartImage, VideoContentResponse, VideoFrameImage, VideoFrameType,
68    VideoGenerationRequest, VideoGenerationResponse, VideoGenerationUsage, VideoImageUrl,
69    VideoModel, VideoModelsResponse, VideoProvider, VideoResolution, VideoStatus, Workspace,
70    WorkspaceMember, WorkspaceMemberRole, ZdrEndpointsResponse,
71};