[package]
edition = "2024"
name = "trusty-common"
version = "0.4.15"
authors = ["Bob Matsuoka <bob@matsuoka.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Shared utilities and provider-agnostic streaming chat (ChatProvider, OllamaProvider, OpenRouter, tool-use) for trusty-* projects"
homepage = "https://github.com/bobmatnyc/trusty-tools"
readme = "README.md"
keywords = [
"mcp",
"utilities",
"cli",
"openrouter",
]
categories = ["command-line-utilities"]
license = "Elastic-2.0"
repository = "https://github.com/bobmatnyc/trusty-tools"
resolver = "2"
[features]
axum-server = [
"dep:axum",
"dep:tower-http",
]
default = []
embedder = [
"dep:fastembed",
"dep:lru",
"dep:parking_lot",
"dep:ort",
]
embedder-bundled-ort = [
"embedder",
"fastembed/ort-download-binaries-native-tls",
]
embedder-coreml = ["embedder"]
embedder-cuda = [
"embedder",
"fastembed/cuda",
"fastembed/ort-load-dynamic",
"ort/cuda",
"ort/load-dynamic",
]
embedder-load-dynamic = [
"embedder",
"fastembed/ort-load-dynamic",
"ort/load-dynamic",
]
embedder-test-support = ["embedder"]
mcp = []
memory-core = [
"dep:usearch",
"dep:rusqlite",
"dep:r2d2",
"dep:r2d2_sqlite",
"dep:git2",
"dep:dashmap",
"dep:futures",
"dep:chrono",
"dep:regex",
"dep:parking_lot",
"dep:thiserror",
"dep:uuid",
"embedder",
"embedder-bundled-ort",
]
memory-core-kuzu = [
"memory-core",
"dep:kuzu",
]
monitor-tui = [
"dep:ratatui",
"dep:crossterm",
"dep:chrono",
]
rpc = ["dep:uuid"]
symgraph = [
"dep:thiserror",
"dep:sha2",
]
symgraph-parser = [
"symgraph",
"dep:uuid",
"dep:indexmap",
"dep:similar",
"dep:walkdir",
"dep:petgraph",
"dep:tree-sitter",
"dep:tree-sitter-rust",
"dep:tree-sitter-python",
"dep:tree-sitter-javascript",
"dep:tree-sitter-go",
"dep:tree-sitter-java",
"dep:tree-sitter-typescript",
"dep:tree-sitter-c",
"dep:tree-sitter-cpp",
"dep:syn",
"dep:prettyplease",
"dep:proc-macro2",
"dep:quote",
"dep:genco",
]
symgraph-server = [
"symgraph-parser",
"axum-server",
]
[lib]
name = "trusty_common"
crate-type = ["rlib"]
path = "src/lib.rs"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
features = ["macros"]
optional = true
[dependencies.chrono]
version = "0.4"
features = ["serde"]
optional = true
[dependencies.colored]
version = "2"
[dependencies.crossterm]
version = "0.28"
optional = true
[dependencies.dashmap]
version = "6"
optional = true
[dependencies.dirs]
version = "5"
[dependencies.fastembed]
version = "5"
features = ["hf-hub-native-tls"]
optional = true
default-features = false
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.futures-util]
version = "0.3"
[dependencies.genco]
version = "0.19"
optional = true
[dependencies.git2]
version = "0.20"
features = [
"vendored-libgit2",
"vendored-openssl",
]
optional = true
[dependencies.indexmap]
version = "2"
features = ["serde"]
optional = true
[dependencies.kuzu]
version = "0.9"
optional = true
[dependencies.lru]
version = "0.12"
optional = true
[dependencies.ort]
version = "=2.0.0-rc.12"
features = [
"std",
"api-24",
]
optional = true
default-features = false
[dependencies.parking_lot]
version = "0.12"
optional = true
[dependencies.petgraph]
version = "0.8"
features = ["serde-1"]
optional = true
[dependencies.prettyplease]
version = "0.2"
optional = true
[dependencies.proc-macro2]
version = "1.0"
optional = true
[dependencies.quote]
version = "1.0"
optional = true
[dependencies.r2d2]
version = "0.8"
optional = true
[dependencies.r2d2_sqlite]
version = "0.33"
optional = true
[dependencies.ratatui]
version = "0.29"
optional = true
[dependencies.regex]
version = "1"
optional = true
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
"rustls-tls",
]
default-features = false
[dependencies.rusqlite]
version = "0.39"
features = ["bundled"]
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.similar]
version = "2"
features = ["text"]
optional = true
[dependencies.syn]
version = "2.0"
features = ["full"]
optional = true
[dependencies.sysinfo]
version = "0.33"
features = ["system"]
default-features = false
[dependencies.thiserror]
version = "1"
optional = true
[dependencies.tokio]
version = "1"
features = [
"full",
"net",
"io-util",
"io-std",
"macros",
"rt",
"sync",
"process",
]
[dependencies.tower-http]
version = "0.6"
features = [
"cors",
"trace",
"compression-gzip",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"registry",
]
[dependencies.tree-sitter]
version = "0.26"
optional = true
[dependencies.tree-sitter-c]
version = "0.23"
optional = true
[dependencies.tree-sitter-cpp]
version = "0.23"
optional = true
[dependencies.tree-sitter-go]
version = "0.25"
optional = true
[dependencies.tree-sitter-java]
version = "0.23"
optional = true
[dependencies.tree-sitter-javascript]
version = "0.25"
optional = true
[dependencies.tree-sitter-python]
version = "0.25"
optional = true
[dependencies.tree-sitter-rust]
version = "0.24"
optional = true
[dependencies.tree-sitter-typescript]
version = "0.23"
optional = true
[dependencies.usearch]
version = "2.25"
optional = true
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
optional = true
[dependencies.walkdir]
version = "2"
optional = true
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.toml]
version = "0.8"
[target.'cfg(target_os = "macos")'.dependencies.libc]
version = "0.2"
[target.'cfg(target_os = "macos")'.dependencies.ort]
version = "=2.0.0-rc.12"
features = [
"coreml",
"std",
"api-24",
]
optional = true
default-features = false