Kill reqwest — minimal HTTP client on raw hyper + tokio-rustls

New src/agent/api/http.rs: ~240 lines, supports GET/POST, JSON/form
bodies, SSE streaming via chunk(), TLS via rustls. No tracing dep.

Removes reqwest from the main crate and telegram channel crate.
Cargo.lock drops ~900 lines of transitive dependencies.

tracing now only pulled in by tui-markdown.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
Kent Overstreet 2026-04-07 12:50:40 -04:00
parent a421c3c9f3
commit 1cf4f504c0
9 changed files with 360 additions and 915 deletions

View file

@ -19,16 +19,23 @@ version.workspace = true
edition.workspace = true
[dependencies]
capnp = "0.25"
figment = { version = "0.10", features = ["env"] }
env_logger = "0.11"
uuid = { version = "1", features = ["v4"] }
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
crossterm = { version = "0.29", features = ["event-stream"] }
ratatui = { version = "0.30", features = ["unstable-rendered-line-info"] }
tui-markdown = "0.3"
tui-textarea = { version = "0.10.2", package = "tui-textarea-2" }
json5 = "1.3"
bincode = "1"
regex = "1"
glob = "0.3"
chrono = "0.4"
clap = { version = "4", features = ["derive"] }
libc = "0.2"
redb = "2"
rkyv = { version = "0.7", features = ["validation", "std"] }
memchr = "2"
memmap2 = "0.9"
@ -37,25 +44,26 @@ peg = "0.8"
paste = "1"
jobkit = { git = "https://evilpiepirate.org/git/jobkit.git", features = ["daemon"] }
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] }
glob = "0.3"
tokio-util = { version = "0.7", features = ["compat"] }
tokio-scoped = "0.2.0"
futures = "0.3"
capnp = "0.25"
capnp-rpc = "0.25"
http = "1"
hyper = { version = "1", features = ["client", "http1"] }
hyper-util = { version = "0.1", features = ["tokio"], default-features = false }
http-body-util = "0.1"
rustls = "0.23"
tokio-rustls = "0.26"
rustls-native-certs = "0.8"
serde_urlencoded = "0.7"
bytes = "1"
anyhow = "1"
base64 = "0.22"
dirs = "6"
futures = "0.3"
tiktoken-rs = "0.9.1"
figment = { version = "0.10", features = ["env"] }
tui-markdown = "0.3"
tui-textarea = { version = "0.10.2", package = "tui-textarea-2" }
redb = "2"
log = "0.4"
ratatui = { version = "0.30", features = ["unstable-rendered-line-info"] }
crossterm = { version = "0.29", features = ["event-stream"] }
skillratings = "0.28"
capnp-rpc = "0.25"
tokio-util = { version = "0.7", features = ["compat"] }
env_logger = "0.11"
tokio-scoped = "0.2.0"
[build-dependencies]
capnpc = "0.25"