oris-runtime 0.1.1

An agentic workflow runtime and programmable AI execution system in Rust: stateful graphs, agents, tools, and multi-step execution.
[package]
name = "oris-runtime"
version = "0.1.1"
edition = "2021"
publish = true
repository = "https://github.com/fanjia1024/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/fanjia1024/oris"
documentation = "https://docs.rs/oris-runtime"
authors = ["Jiafan"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[package.metadata.docs.rs]
# Build docs with all features so optional APIs are included (vector stores, LLMs, etc.)
all-features = true
# Optional: pass cfg so you can #[cfg(docsrs)] doc-only code
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
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"
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"
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.2", 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", optional = true }
aws-sdk-s3 = { version = "1", optional = true }
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"]
bedrock = ["aws-sdk-bedrockruntime", "aws-config"]
lopdf = ["dep:lopdf"]
pdf-extract = ["dep:lopdf", "dep:pdf-extract"]
ollama = ["ollama-rs"]
opensearch = ["dep:opensearch", "aws-config"]
postgres = ["pgvector", "sqlx", "uuid"]
qdrant = ["qdrant-client", "uuid"]
sqlite-vss = ["sqlx"]
sqlite-vec = ["sqlx"]
surrealdb = ["dep:surrealdb"]
in-memory = []
uuid = ["dep:uuid"]
sqlite-persistence = ["rusqlite"]
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",
]
# Document loader features
yaml = ["serde_yaml"]
toml = ["dep:toml"]
xml = ["quick-xml"]
excel = ["calamine"]
aws-s3 = ["aws-sdk-s3", "aws-config"]
github = ["octocrab", "dep:base64"]
browser-use = ["dep:headless_chrome"]
# Retriever features
wikipedia = []
arxiv = []
tavily = []
bm25 = []
tfidf = []
svm = []
cohere = []
flashrank = []
contextual-ai = []
llmlingua = []
# Text splitter features
# Note: CodeSplitter is available when tree-sitter feature is enabled
# It uses text-splitter's code feature internally if available

[dev-dependencies]
base64 = "0.22.1"
tokio-test = "0.4.4"
testcontainers = "0.23"
env_logger = "0.11"
chrono = { version = "0.4", features = ["serde"] }
mongodb = "2"

[build-dependencies]
cc = { version = "1", optional = true }