echo_tools 0.2.0

Domain tools for echo-agent framework (chart, data, database, git, media, web, rag)
Documentation
[package]
name = "echo_tools"
version = "0.2.0"
edition = "2024"
rust-version = "1.95"
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", "research"]
research = ["dep:quick-xml", "dep:lopdf"]
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", "dep:rust_xlsxwriter"]
chart = []
data = ["dep:polars"]
database = ["dep:sqlx"]
git = []
rag = ["dep:uuid"]

[dependencies]
echo_core = { version = "0.2.0", path = "../echo-core" }
echo_macros = { version = "0.2.0", path = "../echo-macros" }
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"
schemars = "0.8"
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 }

# Feature-gated dependencies
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 }
rust_xlsxwriter = { version = "0.82", 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 }
quick-xml = { version = "0.37", features = ["serialize"], optional = true }
urlencoding = "2"