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
16#[cfg(all(target_arch = "wasm32", not(feature = "browser")))]
17compile_error!("enable the `browser` feature when targeting wasm32-unknown-unknown");
18
19pub mod client;
20pub mod error;
21pub mod mcp;
22pub mod oauth;
23mod request;
24#[cfg(feature = "beta")]
25pub mod responses;
26pub mod retry;
27pub mod stream;
28mod timer;
29pub mod tool_call_accumulator;
30pub mod types;
31pub mod webhooks;
32
33pub use client::{Client, ClientBuilder};
34pub use error::{Error, Result};
35pub use retry::RetryConfig;
36pub use stream::EventStream;
37pub use tool_call_accumulator::ToolCallAccumulator;
38pub use types::{
39    create_file_parser_plugin, create_user_message_with_audio,
40    create_user_message_with_audio_bytes, create_user_message_with_base64_image,
41    create_user_message_with_base64_image_bytes, create_user_message_with_base64_pdf,
42    create_user_message_with_files, create_user_message_with_image,
43    create_user_message_with_image_detail, create_user_message_with_images,
44    create_user_message_with_pdf, create_user_message_with_text_content,
45    create_user_message_with_text_file, create_user_message_with_text_files,
46    encode_image_bytes_to_base64, encode_image_to_base64, ActivityData, ActivityOptions,
47    ActivityResponse, Annotation, ApiKey, AudioFormat, ChatCompletionRequest,
48    ChatCompletionResponse, Choice, CompletionRequest, CompletionResponse, Content, ContentBuilder,
49    ContentPart, CreateKeyRequest, CreateKeyResponse, CreditsData, CreditsResponse, DeleteKeyData,
50    DeleteKeyResponse, Delta, File, FileAnnotation, FileParserEngine, FilePdfConfig,
51    FilePluginConfig, FileRef, FunctionCall, FunctionDef, GetKeyByHashResponse, ImageDetail,
52    ImageUrl, InputAudio, KeyData, KeyRateLimit, KeyResponse, ListKeysOptions, ListKeysResponse,
53    ListModelsOptions, Message, Model, ModelArchitecture, ModelDefaultParameters, ModelEndpoint,
54    ModelEndpointPricing, ModelEndpointsArchitecture, ModelEndpointsData, ModelEndpointsResponse,
55    ModelPerRequestLimits, ModelPricing, ModelTopProvider, ModelsResponse, Plugin, Provider,
56    ProviderInfo, ProvidersResponse, ReasoningConfig, ResponseFormat, Role, Tool, ToolCall,
57    ToolChoice, UpdateKeyRequest, UpdateKeyResponse, UrlCitation, Usage, WebPluginConfig,
58};
59pub use types::{
60    AssignKeysRequest, AssignKeysResponse, AssignMembersRequest, AssignMembersResponse,
61    BulkAddWorkspaceMembersResponse, BulkRemoveWorkspaceMembersResponse, CreateGuardrailRequest,
62    CreateWorkspaceRequest, CreateWorkspaceResponse, DeleteGuardrailResponse,
63    DeleteWorkspaceResponse, GetWorkspaceResponse, Guardrail, GuardrailKeyAssignment,
64    GuardrailMemberAssignment, ListGuardrailKeyAssignmentsResponse,
65    ListGuardrailMemberAssignmentsResponse, ListGuardrailsOptions, ListGuardrailsResponse,
66    ListOrganizationMembersOptions, ListOrganizationMembersResponse, ListWorkspacesOptions,
67    ListWorkspacesResponse, OrganizationMember, OrganizationMemberRole, PercentileStats,
68    PublicEndpoint, PublicEndpointPricing, RerankDocument, RerankRequest, RerankResponse,
69    RerankResult, RerankUsage, ResetInterval, SpeechFormat, SpeechProvider, SpeechRequest,
70    SpeechResponse, UpdateGuardrailRequest, UpdateWorkspaceRequest, UpdateWorkspaceResponse,
71    VideoAspectRatio, VideoContentPartImage, VideoContentResponse, VideoFrameImage, VideoFrameType,
72    VideoGenerationRequest, VideoGenerationResponse, VideoGenerationUsage, VideoImageUrl,
73    VideoModel, VideoModelsResponse, VideoProvider, VideoResolution, VideoStatus, Workspace,
74    WorkspaceMember, WorkspaceMemberRole, ZdrEndpointsResponse,
75};