[package]
name = "rustglm"
version = "1.0.0"
edition = "2024"
rust-version = "1.88"
resolver = "2"
authors = ["blueokanna <blueokanna@gmail.com>"]
repository = "https://github.com/blueokanna/rustglm.git"
license = "Apache-2.0"
description = "Production-oriented async Rust SDK for Zhipu GLM, Realtime, Batch, RAG, and MCP"
homepage = "https://github.com/blueokanna/rustglm"
readme = "README.md"
keywords = ["zhipu", "chatglm", "llm", "ai", "rust-sdk"]
categories = ["api-bindings", "web-programming::http-client"]
include = [
".cargo/config.toml",
"src/**",
"examples/**",
"tests/**",
"Cargo.toml",
"Cargo.lock",
"README.md",
"README_zh.md",
"docs/**",
"LICENSE",
]
[package.metadata.docs.rs]
all-features = true
[badges]
maintenance = { status = "actively-developed" }
[lib]
name = "rustglm"
[features]
default = [
"agents",
"audio",
"batch",
"files",
"images",
"rag",
"realtime",
"tools",
"video",
]
full = [
"agents",
"audio",
"batch",
"files",
"images",
"mcp",
"rag",
"realtime",
"tools",
"video",
]
agents = []
audio = []
batch = []
files = []
images = []
mcp = ["dep:rmcp", "tokio/sync"]
rag = []
realtime = ["dep:tokio-tungstenite", "tokio/macros", "tokio/net", "tokio/sync"]
tools = []
video = []
[dependencies]
async-stream = "0.3.6"
async-trait = "0.1.89"
base64 = "0.22.1"
futures-util = "0.3.33"
hmac = "0.13.0"
reqwest = { version = "0.13", default-features = false, features = ["json", "multipart", "stream", "rustls"] }
rmcp = { version = "2.2.0", default-features = false, features = ["client", "reqwest", "transport-streamable-http-client-reqwest"], optional = true }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
sha2 = "0.11.0"
thiserror = "2.0.19"
tokio = { version = "1.53.0", features = ["rt", "time"] }
tokio-tungstenite = { version = "0.30.0", features = ["rustls-tls-native-roots"], optional = true }
[dev-dependencies]
tokio = { version = "1.53.0", features = ["macros", "rt-multi-thread", "net", "io-util"] }
[[example]]
name = "realtime_audio_video"
required-features = ["realtime"]
[[example]]
name = "official_agent"
required-features = ["agents"]
[[example]]
name = "custom_agent"
required-features = ["agents"]
[[example]]
name = "glm_4_voice"
required-features = ["audio"]
[[example]]
name = "interactive_chat"
required-features = ["agents"]
[[example]]
name = "file_batch"
required-features = ["batch", "files"]
[[example]]
name = "knowledge_base"
required-features = ["rag"]
[[example]]
name = "web_search"
required-features = ["tools"]
[[example]]
name = "image_generation"
required-features = ["images"]
[[example]]
name = "video_generation"
required-features = ["video"]
[[example]]
name = "speech"
required-features = ["audio"]
[[example]]
name = "transcription"
required-features = ["audio"]
[[example]]
name = "voice_management"
required-features = ["audio"]
[[example]]
name = "file_management"
required-features = ["files"]
[[example]]
name = "file_parsing"
required-features = ["files"]
[[example]]
name = "document_understanding"
required-features = ["files", "tools"]
[[example]]
name = "batch_management"
required-features = ["batch"]
[[example]]
name = "knowledge_management"
required-features = ["rag"]
[[example]]
name = "knowledge_documents"
required-features = ["rag"]
[[example]]
name = "knowledge_retrieval"
required-features = ["rag"]
[[example]]
name = "retrieval_agent"
required-features = ["rag"]
[[example]]
name = "hosted_tools"
required-features = ["tools"]
[[example]]
name = "assistants"
required-features = ["agents"]
[[example]]
name = "official_agent_lifecycle"
required-features = ["agents"]
[[example]]
name = "tool_stream"
required-features = ["tools"]
[[example]]
name = "mcp_client"
required-features = ["mcp"]
[[test]]
name = "live_realtime"
required-features = ["realtime"]
[[test]]
name = "live_zhipu"
required-features = ["agents", "audio", "batch", "files", "images", "tools", "video"]