[package]
name = "oris-runtime"
version = "0.8.0"
edition = "2021"
rust-version = "1.80"
publish = true
repository = "https://github.com/Colin4k1024/Oris"
license = "MIT"
description = "An agentic workflow runtime and programmable AI execution system in Rust: stateful graphs, agents, tools, and multi-step execution."
keywords = [
"agent",
"workflow",
"llm",
"runtime",
"graph",
]
categories = [
"development-tools",
"asynchronous",
"data-structures",
"text-processing",
]
readme = "../../README.md"
homepage = "https://github.com/Colin4k1024/Oris"
documentation = "https://docs.rs/oris-runtime"
authors = ["Jiafan"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
oris-execution-runtime = { version = "0.2.13", path = "../oris-execution-runtime", default-features = false }
oris-kernel = { version = "0.2.12", path = "../oris-kernel", default-features = false }
oris-evokernel = { version = "0.1.2", path = "../oris-evokernel", optional = true }
scraper = "0.21"
serde = { version = "1.0", features = ["derive"] }
async-trait = "0.1.80"
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", features = ["json", "stream"] }
serde_json = "1.0"
futures = "0.3"
regex = "1.10.4"
sha2 = "0.10"
hex = "0.4"
log = "0.4.21"
html-escape = "0.2.13"
reqwest-eventsource = "0.6.0"
async-openai = "0.28.1"
mockito = "1.4.0"
tiktoken-rs = "0.5.8"
sqlx = { version = "0.8.0", default-features = false, features = [
"postgres",
"sqlite",
"runtime-tokio-native-tls",
"json",
"uuid",
], optional = true }
uuid = { version = "1.8.0", features = ["v4"], optional = true }
chrono = { version = "0.4", features = ["serde"] }
rusqlite = { version = "0.32", features = ["bundled"], optional = true }
pgvector = { version = "0.4.0", features = [
"postgres",
"sqlx",
], optional = true }
text-splitter = { version = "0.29", features = ["tiktoken-rs", "markdown", "code"] }
surrealdb = { version = "2.0.2", optional = true, default-features = false }
csv = "1.3.0"
urlencoding = "2.1.3"
toml = { version = "0.8", optional = true }
serde_yaml = { version = "0.9", optional = true }
quick-xml = { version = "0.31", optional = true, features = ["async-tokio"] }
calamine = { version = "0.24", optional = true }
lopdf = { version = "0.34.0", features = ["nom_parser"], optional = true }
pdf-extract = { version = "0.7.8", optional = true }
thiserror = "2.0.0"
futures-util = "0.3.30"
async-stream = "0.3.5"
tokio-stream = "0.1.15"
axum = { version = "0.7", optional = true }
tracing = { version = "0.1", optional = true }
schemars = { version = "0.8", features = ["derive"] }
jsonschema = "0.17"
secrecy = { version = "0.10.3", features = ["serde"] }
readability = "0.3.0"
htmd = { version = "0.1", optional = true }
url = "2.5.0"
fastembed = { version = "4", optional = true }
flume = { version = "0.11.0", optional = true }
gix = { version = "0.68.0", default-features = false, optional = true, features = [
"parallel",
"revision",
"serde",
] }
opensearch = { version = "2", optional = true, features = ["aws-auth"] }
aws-config = { version = "=1.8.13", optional = true, features = [
"behavior-version-latest",
] }
glob = "0.3.1"
strum_macros = "0.27.0"
async-recursion = "1.1.0"
tree-sitter = { version = "0.26", optional = true }
tree-sitter-c = { version = "0.23", optional = true }
tree-sitter-c-sharp = { version = "0.23", optional = true }
tree-sitter-cpp = { version = "0.23", optional = true }
tree-sitter-go = { version = "0.23", optional = true }
tree-sitter-java = { version = "0.23", optional = true }
tree-sitter-javascript = { version = "0.23", optional = true }
tree-sitter-kotlin-ng = { version = "1.1", optional = true }
tree-sitter-python = { version = "0.23", optional = true }
tree-sitter-rust = { version = "0.24", optional = true }
tree-sitter-scala = { version = "0.23", optional = true }
tree-sitter-typescript = { version = "0.23", optional = true }
qdrant-client = { version = "1.10.1", optional = true }
ollama-rs = { version = "0.2.0", optional = true, features = [
"stream",
"chat-history",
] }
mistralai-client = { version = "0.14.0", optional = true }
google-ai-rs = { version = "0.1", optional = true }
aws-sdk-bedrockruntime = { version = "=1.124.0", optional = true }
aws-sdk-s3 = { version = "=1.122.0", optional = true }
aws-credential-types = { version = "=1.2.11", optional = true, default-features = false }
aws-runtime = { version = "=1.6.0", optional = true, default-features = false }
aws-sdk-sso = { version = "=1.93.0", optional = true, default-features = false }
aws-sdk-ssooidc = { version = "=1.95.0", optional = true, default-features = false }
aws-sdk-sts = { version = "=1.97.0", optional = true, default-features = false }
aws-sigv4 = { version = "=1.3.8", optional = true, default-features = false }
aws-smithy-async = { version = "=1.2.11", optional = true, default-features = false }
aws-smithy-checksums = { version = "=0.64.3", optional = true, default-features = false }
aws-smithy-eventstream = { version = "=0.60.18", optional = true, default-features = false }
aws-smithy-http = { version = "=0.63.3", optional = true, default-features = false }
aws-smithy-http-client = { version = "=1.1.9", optional = true, default-features = false }
aws-smithy-json = { version = "=0.62.3", optional = true, default-features = false }
aws-smithy-observability = { version = "=0.2.4", optional = true, default-features = false }
aws-smithy-query = { version = "=0.60.13", optional = true, default-features = false }
aws-smithy-runtime = { version = "=1.10.0", optional = true, default-features = false }
aws-smithy-runtime-api = { version = "=1.11.3", optional = true, default-features = false }
aws-smithy-types = { version = "=1.4.3", optional = true, default-features = false }
aws-smithy-xml = { version = "=0.60.13", optional = true, default-features = false }
aws-types = { version = "=1.3.11", optional = true, default-features = false }
octocrab = { version = "0.38", optional = true }
base64 = { version = "0.22", optional = true }
chromadb = { version = "2", optional = true }
hnsw_rs = { version = "0.3", optional = true }
milvus-sdk-rust = { version = "0.1", optional = true }
mongodb = { version = "2", optional = true }
pinecone-rs = { version = "0.1", optional = true }
weaviate-community = { version = "0.2", optional = true }
headless_chrome = { version = "1.0", optional = true }
[features]
default = []
fastembed = ["dep:fastembed"]
git = ["gix", "flume"]
html-to-markdown = ["dep:htmd"]
mistralai = ["mistralai-client"]
gemini = ["google-ai-rs"]
aws-msrv-pins = [
"dep:aws-credential-types",
"dep:aws-runtime",
"dep:aws-sdk-sso",
"dep:aws-sdk-ssooidc",
"dep:aws-sdk-sts",
"dep:aws-sigv4",
"dep:aws-smithy-async",
"dep:aws-smithy-checksums",
"dep:aws-smithy-eventstream",
"dep:aws-smithy-http",
"dep:aws-smithy-http-client",
"dep:aws-smithy-json",
"dep:aws-smithy-observability",
"dep:aws-smithy-query",
"dep:aws-smithy-runtime",
"dep:aws-smithy-runtime-api",
"dep:aws-smithy-types",
"dep:aws-smithy-xml",
"dep:aws-types",
]
bedrock = ["aws-sdk-bedrockruntime", "aws-config", "aws-msrv-pins"]
lopdf = ["dep:lopdf"]
pdf-extract = ["dep:lopdf", "dep:pdf-extract"]
ollama = ["ollama-rs"]
opensearch = ["dep:opensearch", "aws-config", "aws-msrv-pins"]
postgres = ["pgvector", "dep:sqlx", "uuid"]
kernel-postgres = [
"dep:sqlx",
"oris-kernel/kernel-postgres",
"oris-execution-runtime/kernel-postgres",
]
qdrant = ["qdrant-client", "uuid"]
sqlite-vss = ["dep:sqlx"]
sqlite-vec = ["dep:sqlx"]
surrealdb = ["dep:surrealdb"]
in-memory = []
uuid = ["dep:uuid"]
sqlite-persistence = [
"rusqlite",
"dep:uuid",
"oris-kernel/sqlite-persistence",
"oris-execution-runtime/sqlite-persistence",
]
chroma = ["dep:chromadb", "uuid"]
faiss = ["dep:hnsw_rs", "uuid"]
milvus = ["dep:milvus-sdk-rust", "uuid"]
mongodb = ["dep:mongodb", "uuid"]
pinecone = ["dep:pinecone-rs", "uuid"]
weaviate = ["dep:weaviate-community", "uuid"]
tree-sitter = [
"cc",
"dep:tree-sitter",
"dep:tree-sitter-c",
"dep:tree-sitter-c-sharp",
"dep:tree-sitter-cpp",
"dep:tree-sitter-go",
"dep:tree-sitter-java",
"dep:tree-sitter-javascript",
"dep:tree-sitter-kotlin-ng",
"dep:tree-sitter-python",
"dep:tree-sitter-rust",
"dep:tree-sitter-scala",
"dep:tree-sitter-typescript",
]
yaml = ["serde_yaml"]
toml = ["dep:toml"]
xml = ["quick-xml"]
excel = ["calamine"]
aws-s3 = ["aws-sdk-s3", "aws-config", "aws-msrv-pins"]
github = ["octocrab", "dep:base64"]
browser-use = ["dep:headless_chrome"]
execution-server = [
"dep:axum",
"dep:uuid",
"dep:tracing",
"oris-kernel/execution-server",
"oris-execution-runtime/execution-server",
]
evokernel-facade = ["dep:oris-evokernel"]
evolution-experimental = ["evokernel-facade"]
governor-experimental = ["evokernel-facade"]
evolution-network-experimental = ["evokernel-facade", "evolution-experimental"]
economics-experimental = ["evokernel-facade"]
spec-experimental = ["evokernel-facade"]
agent-contract-experimental = ["evokernel-facade"]
full-evolution-experimental = [
"evolution-experimental",
"governor-experimental",
"evolution-network-experimental",
"economics-experimental",
"spec-experimental",
"agent-contract-experimental",
]
wikipedia = []
arxiv = []
tavily = []
bm25 = []
tfidf = []
svm = []
cohere = []
flashrank = []
contextual-ai = []
llmlingua = []
[dev-dependencies]
base64 = "0.22.1"
tokio-test = "0.4.4"
tower = { version = "0.5", features = ["util"] }
testcontainers = "0.23"
env_logger = "0.11"
chrono = { version = "0.4", features = ["serde"] }
mongodb = "2"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
[build-dependencies]
cc = { version = "1", optional = true }