siumai 0.10.3

A unified LLM interface library for Rust
Documentation
[dependencies.async-trait]
version = "0.1"

[dependencies.backoff]
features = ["tokio"]
version = "0.4"

[dependencies.chrono]
features = ["serde"]
version = "0.4"

[dependencies.eventsource-stream]
version = "0.2"

[dependencies.futures]
version = "0.3"

[dependencies.futures-util]
version = "0.3"

[dependencies.lazy_static]
version = "1.4"

[dependencies.rand]
version = "0.8"

[dependencies.regex]
version = "1.11.1"

[dependencies.reqwest]
features = ["json", "stream", "multipart"]
version = "0.12"

[dependencies.secrecy]
features = ["serde"]
version = "0.10"

[dependencies.serde]
features = ["derive"]
version = "1.0"

[dependencies.serde_json]
version = "1.0"

[dependencies.static_assertions]
version = "1.1"

[dependencies.thiserror]
version = "2.0"

[dependencies.tokio]
features = ["full"]
version = "1.0"

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-appender]
version = "0.2"

[dependencies.tracing-subscriber]
features = ["env-filter", "json", "fmt", "time", "chrono"]
version = "0.3"

[dependencies.urlencoding]
version = "2.1"

[dependencies.uuid]
features = ["v4", "serde"]
version = "1.0"

[dependencies.validator]
features = ["derive"]
version = "0.20"

[dev-dependencies.axum]
version = "0.8.4"

[dev-dependencies.chrono]
features = ["serde"]
version = "0.4"

[dev-dependencies.futures-util]
version = "0.3"

[dev-dependencies.mockito]
version = "1.0"

[dev-dependencies.rmcp]
features = ["transport-io", "transport-child-process", "transport-sse-client-reqwest", "transport-sse-server", "transport-streamable-http-client-reqwest", "transport-streamable-http-server", "transport-streamable-http-server-session", "macros", "server", "client"]
version = "0.8.0"

[dev-dependencies.serde]
features = ["derive"]
version = "1.0"

[dev-dependencies.tempfile]
version = "3.0"

[dev-dependencies.tokio-test]
version = "0.4"

[dev-dependencies.tokio-util]
version = "0.7"

[dev-dependencies.tracing-test]
version = "0.2"

[dev-dependencies.wiremock]
version = "0.6"

[[example]]
name = "anthropic_basic_chat"
path = "examples/04_providers/anthropic/basic_chat.rs"

[[example]]
name = "api_integration"
path = "examples/05_use_cases/api_integration.rs"

[[example]]
name = "batch_processing"
path = "examples/03_advanced_features/batch_processing.rs"

[[example]]
name = "capability_detection"
path = "examples/02_core_features/capability_detection.rs"

[[example]]
name = "chat_basics"
path = "examples/02_core_features/chat_basics.rs"

[[example]]
name = "code_assistant"
path = "examples/05_use_cases/code_assistant.rs"

[[example]]
name = "content_generator"
path = "examples/05_use_cases/content_generator.rs"

[[example]]
name = "convenience_methods"
path = "examples/01_getting_started/convenience_methods.rs"

[[example]]
name = "custom_configurations"
path = "examples/03_advanced_features/custom_configurations.rs"

[[example]]
name = "custom_provider"
path = "examples/03_advanced_features/custom_provider.rs"

[[example]]
name = "embedding"
path = "examples/02_core_features/embedding.rs"

[[example]]
name = "error_handling"
path = "examples/02_core_features/error_handling.rs"

[[example]]
name = "google_basic_usage"
path = "examples/04_providers/google/basic_usage.rs"

[[example]]
name = "google_embedding_task_types"
path = "examples/04_providers/google/embedding_with_task_types.rs"

[[example]]
name = "http_mcp_client"
path = "examples/06_mcp_integration/http_mcp_client.rs"

[[example]]
name = "http_mcp_server"
path = "examples/06_mcp_integration/http_mcp_server.rs"

[[example]]
name = "image_generation_showcase"
path = "examples/04_providers/openai/image_generation_showcase.rs"

[[example]]
name = "multimodal_processing"
path = "examples/03_advanced_features/multimodal_processing.rs"

[[example]]
name = "ollama_basic_setup"
path = "examples/04_providers/ollama/basic_setup.rs"

[[example]]
name = "ollama_thinking_and_tools"
path = "examples/04_providers/ollama/thinking_and_tools.rs"

[[example]]
name = "openai_basic_chat"
path = "examples/04_providers/openai/basic_chat.rs"

[[example]]
name = "openai_enhanced_features"
path = "examples/04_providers/openai/enhanced_features.rs"

[[example]]
name = "openai_response_api_http_mcp_client"
path = "examples/04_providers/openai/openai_response_api_http_mcp_client.rs"

[[example]]
name = "openai_responses_api"
path = "examples/04_providers/openai/openai_responses_api.rs"

[[example]]
name = "openai_vision_processing"
path = "examples/04_providers/openai/vision_processing.rs"

[[example]]
name = "provider_comparison"
path = "examples/01_getting_started/provider_comparison.rs"

[[example]]
name = "quick_start"
path = "examples/01_getting_started/quick_start.rs"

[[example]]
name = "reasoning"
path = "examples/02_core_features/reasoning.rs"

[[example]]
name = "siliconflow_showcase"
path = "examples/04_providers/openai_compatible/siliconflow.rs"

[[example]]
name = "siliconflow_usage_examples"
path = "examples/04_providers/siliconflow/usage_examples.rs"

[[example]]
name = "simple_chatbot"
path = "examples/05_use_cases/simple_chatbot.rs"

[[example]]
name = "sse_mcp_client"
path = "examples/06_mcp_integration/sse_mcp_client.rs"

[[example]]
name = "sse_mcp_server"
path = "examples/06_mcp_integration/sse_mcp_server.rs"

[[example]]
name = "stdio_mcp_client"
path = "examples/06_mcp_integration/stdio_mcp_client.rs"

[[example]]
name = "stdio_mcp_server"
path = "examples/06_mcp_integration/stdio_mcp_server.rs"

[[example]]
name = "streamable_http_mcp_client"
path = "examples/06_mcp_integration/streamable_http_mcp_client.rs"

[[example]]
name = "streamable_http_mcp_server"
path = "examples/06_mcp_integration/streamable_http_mcp_server.rs"

[[example]]
name = "streaming_chat"
path = "examples/02_core_features/streaming_chat.rs"

[[example]]
name = "tracing_monitoring"
path = "examples/03_advanced_features/tracing_monitoring.rs"

[[example]]
name = "unified_interface"
path = "examples/02_core_features/unified_interface.rs"

[features]
all-providers = ["openai", "anthropic", "google", "ollama", "xai", "groq"]
anthropic = []
default = ["all-providers"]
google = []
groq = []
ollama = []
openai = []
xai = []

[lib]
name = "siumai"
path = "src/lib.rs"

[package]
authors = ["Mingzhen Zhuang <superfrankie621@gmail.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["api-bindings"]
description = "A unified LLM interface library for Rust"
documentation = "https://docs.rs/siumai"
edition = "2024"
exclude = ["docs/*"]
homepage = "https://github.com/YumchaLabs/siumai"
keywords = ["llm", "ai", "openai", "anthropic", "async"]
license = "MIT OR Apache-2.0"
name = "siumai"
readme = "README.md"
repository = "https://github.com/YumchaLabs/siumai"
version = "0.10.3"

[profile.dist]
inherits = "release"
lto = "thin"

[[test]]
name = "debug_implementation_test"
path = "tests/debug_implementation_test.rs"

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"

[[test]]
name = "max_tokens_default_test"
path = "tests/max_tokens_default_test.rs"

[[test]]
name = "real_llm_integration_test"
path = "tests/real_llm_integration_test.rs"

[[test]]
name = "request_builder_consistency"
path = "tests/request_builder_consistency.rs"

[[test]]
name = "request_builder_integration_test"
path = "tests/request_builder_integration_test.rs"

[[test]]
name = "retry_wrapping_test"
path = "tests/retry_wrapping_test.rs"

[[test]]
name = "siumai_unified_interface_test"
path = "tests/siumai_unified_interface_test.rs"

[[test]]
name = "streaming_tests"
path = "tests/streaming_tests.rs"

[[test]]
name = "unified_reasoning_test"
path = "tests/unified_reasoning_test.rs"

[[test]]
name = "url_compatibility_test"
path = "tests/url_compatibility_test.rs"