[package]
edition = "2024"
rust-version = "1.95.0"
name = "rig"
version = "0.43.0"
build = false
include = [
"/src/**",
"/README.md",
"/LICENSE",
"/CHANGELOG.md",
"/MIGRATING.md",
"/img/rig-rebranded-logo-white.svg",
"/img/rig-rebranded-logo-black.svg",
"/img/built-by-playgrounds.svg",
"/img/ryzome-bg.png",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An opinionated library for building LLM powered applications."
readme = "README.md"
license = "MIT"
repository = "https://github.com/0xPlaygrounds/rig"
[package.metadata.docs.rs]
features = [
"agent",
"audio",
"bedrock",
"candle",
"cassette",
"derive",
"epub",
"facade-build-tests",
"fastembed",
"fastembed-hf-hub",
"fastembed-ort-download-binaries",
"gemini-grpc",
"helixdb",
"image",
"lancedb",
"memory",
"milvus",
"mongodb",
"native-tls",
"neo4j",
"pdf",
"postgres",
"qdrant",
"reqwest",
"reqwest-middleware",
"reqwest-middleware-native-tls",
"reqwest-middleware-rustls",
"rmcp",
"rustls",
"s3vectors",
"scylladb",
"socks",
"sqlite",
"test-utils",
"typesafeai",
"vectorize",
"vertexai",
"websocket",
"websocket-native-tls",
"websocket-rustls",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
agent = [
"dep:rig-agent",
"rig-cassette?/agent",
]
audio = [
"rig-core/audio",
"rig-agent?/audio",
]
bedrock = ["dep:rig-bedrock"]
candle = ["dep:rig-candle"]
cassette = ["dep:rig-cassette"]
default = [
"rig-core/default",
"reqwest",
"agent",
"derive",
"rustls",
]
derive = [
"dep:rig-derive",
"rig-core/derive",
"rig-agent?/derive",
]
epub = ["rig-core/epub"]
facade-build-tests = []
fastembed = [
"dep:rig-fastembed",
"rig-fastembed/hf-hub",
"rig-fastembed/ort-download-binaries",
]
fastembed-hf-hub = [
"dep:rig-fastembed",
"rig-fastembed/hf-hub",
]
fastembed-ort-download-binaries = [
"dep:rig-fastembed",
"rig-fastembed/ort-download-binaries",
]
gemini-grpc = ["dep:rig-gemini-grpc"]
helixdb = ["dep:rig-helixdb"]
image = [
"rig-core/image",
"rig-agent?/image",
]
lancedb = ["dep:rig-lancedb"]
memory = ["dep:rig-memory"]
milvus = ["dep:rig-milvus"]
mongodb = ["dep:rig-mongodb"]
native-tls = [
"rig-core/native-tls",
"rig-reqwest?/native-tls",
"rig-tungstenite?/native-tls",
"rig-fastembed?/hf-hub-native-tls",
"rig-helixdb?/native-tls",
"rig-lancedb?/rig-native-tls",
"rig-milvus?/native-tls",
"rig-vectorize?/native-tls",
]
neo4j = ["dep:rig-neo4j"]
pdf = ["rig-core/pdf"]
postgres = ["dep:rig-postgres"]
qdrant = ["dep:rig-qdrant"]
reqwest = [
"dep:rig-reqwest",
"rig-core/reqwest",
"rig-typesafeai?/reqwest",
]
reqwest-middleware = [
"reqwest",
"rig-reqwest/reqwest-middleware",
]
reqwest-middleware-native-tls = [
"reqwest",
"rig-reqwest/reqwest-middleware-native-tls",
]
reqwest-middleware-rustls = [
"reqwest",
"rig-reqwest/reqwest-middleware-rustls",
]
rmcp = ["dep:rig-rmcp"]
rustls = [
"rig-core/rustls",
"rig-reqwest?/rustls",
"rig-tungstenite?/rustls",
"rig-fastembed?/hf-hub-rustls-tls",
"rig-helixdb?/rustls",
"rig-lancedb?/rig-rustls",
"rig-milvus?/rustls",
"rig-vectorize?/rustls",
]
s3vectors = ["dep:rig-s3vectors"]
scylladb = ["dep:rig-scylladb"]
socks = [
"reqwest",
"rig-reqwest/socks",
]
sqlite = ["dep:rig-sqlite"]
surrealdb = ["dep:rig-surrealdb"]
test-utils = [
"rig-core/test-utils",
"rig-agent?/test-utils",
]
typesafeai = ["dep:rig-typesafeai"]
vectorize = ["dep:rig-vectorize"]
vertexai = ["dep:rig-vertexai"]
websocket = [
"reqwest",
"dep:rig-tungstenite",
"rig-core/tungstenite",
]
websocket-native-tls = [
"websocket",
"native-tls",
]
websocket-rustls = [
"websocket",
"rustls",
]
[lib]
name = "rig"
path = "src/lib.rs"
[dependencies.rig-agent]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-bedrock]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-candle]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-cassette]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-core]
version = "0.43.0"
default-features = false
[dependencies.rig-derive]
version = "0.43.0"
optional = true
[dependencies.rig-fastembed]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-gemini-grpc]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-helixdb]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-lancedb]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-memory]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-milvus]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-mongodb]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-neo4j]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-postgres]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-qdrant]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-reqwest]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-rmcp]
version = "0.43.0"
optional = true
[dependencies.rig-s3vectors]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-scylladb]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-sqlite]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-surrealdb]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-typesafeai]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-vectorize]
version = "0.43.0"
optional = true
default-features = false
[dependencies.rig-vertexai]
version = "0.43.0"
optional = true
default-features = false
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.assert_fs]
version = "1"
[dev-dependencies.base64]
version = "0.22"
[dev-dependencies.bevy_app]
version = "0.19.1"
features = ["std"]
default-features = false
[dev-dependencies.bevy_ecs]
version = "0.19.1"
features = [
"std",
"multi_threaded",
]
default-features = false
[dev-dependencies.bevy_tasks]
version = "0.19.1"
features = ["multi_threaded"]
default-features = false
[dev-dependencies.bytes]
version = "1"
[dev-dependencies.futures]
version = "0.3"
[dev-dependencies.httpmock]
version = "0.8.2"
features = [
"record",
"proxy",
]
[dev-dependencies.reqwest]
version = "0.13"
features = [
"json",
"stream",
]
default-features = false
[dev-dependencies.rig-agent]
version = "0.43.0"
features = ["test-utils"]
default-features = false
[dev-dependencies.rig-core]
version = "0.43.0"
features = ["test-utils"]
default-features = false
[dev-dependencies.rmcp]
version = "2"
features = [
"client",
"macros",
"reqwest",
"transport-streamable-http-client",
"transport-streamable-http-client-reqwest",
"transport-streamable-http-server-session",
"transport-streamable-http-server",
"transport-worker",
]
[dev-dependencies.schemars]
version = "1"
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1.0.54"
features = [
"float_roundtrip",
"preserve_order",
]
[dev-dependencies.serde_yaml]
version = "0.9"
[dev-dependencies.syn]
version = "2"
features = [
"full",
"visit",
]
[dev-dependencies.tokio]
version = "1"
features = ["full"]
[dev-dependencies.tracing]
version = "0.1"
[dev-dependencies.tracing-opentelemetry]
version = "0.33"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[target.'cfg(not(target_family = "wasm"))'.dependencies.rig-tungstenite]
version = "0.43.0"
optional = true
[lints.clippy]
await_holding_lock = "deny"
await_holding_refcell_ref = "deny"
dbg_macro = "forbid"
expect_fun_call = "deny"
expect_used = "deny"
indexing_slicing = "deny"
large_enum_variant = "allow"
panic = "deny"
panic_in_result_fn = "deny"
result_large_err = "allow"
should_implement_trait = "allow"
todo = "forbid"
too_many_arguments = "allow"
type_complexity = "allow"
unimplemented = "forbid"
unreachable = "deny"
unwrap_used = "deny"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(rig_loom)"]
[profile.dev]
debug = "line-tables-only"
[profile.dev.package."*"]
debug = 0
[profile.release]
opt-level = "s"
lto = true