[package]
name = "echo_tools"
version = "0.1.4"
edition = "2024"
rust-version = "1.85"
license = "MIT"
description = "Domain tools for echo-agent framework (chart, data, database, git, media, web, rag)"
repository = "https://github.com/EchoYue-lp/echo-agent"
homepage = "https://github.com/EchoYue-lp/echo-agent"
documentation = "https://docs.rs/echo_tools"
keywords = ["ai", "agent", "tools", "echo"]
categories = ["api-bindings", "asynchronous"]
readme = "README.md"
[features]
default = []
full = ["web", "chart", "data", "database", "media", "git", "rag", "shell", "files"]
shell = []
files = []
web = ["dep:scraper", "dep:html2text", "dep:url", "dep:async-trait"]
media = ["dep:pdf-extract", "dep:lopdf", "dep:calamine", "dep:docx-rs", "dep:encoding_rs"]
chart = []
data = ["dep:polars"]
database = ["dep:sqlx"]
git = []
rag = ["dep:uuid"]
[dependencies]
echo_core = { version = "0.1.4", path = "../echo-core" }
uuid = { version = "1", features = ["v4"], optional = true }
shlex = "1"
similar = "2"
base64 = "0.22"
futures = "0.3"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tracing = "0.1"
regex = "1"
tokio = { version = "1", features = ["process", "time", "rt", "macros", "sync", "fs"] }
reqwest = { version = "0.12", features = ["json"] }
async-trait = { version = "0.1", optional = true }
scraper = { version = "0.22", optional = true }
html2text = { version = "0.14", optional = true }
url = { version = "2", optional = true }
pdf-extract = { version = "0.7", optional = true }
lopdf = { version = "0.34", optional = true }
calamine = { version = "0.26", optional = true }
docx-rs = { version = "0.4", optional = true }
encoding_rs = { version = "0.8", optional = true }
polars = { version = "0.53", features = ["lazy", "csv", "json", "parquet", "dtype-full", "strings", "is_in", "regex"], optional = true }
sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite", "mysql", "postgres", "any"], optional = true }