#3096·reqwest

Consider rusty_zstd for zstd content-encoding (pure Rust, no libzstd)

Author: TtimmahlaxCreated Sep 3, 2026Updated Sep 3, 2026

The value of integrating

reqwest is an ergonomic, batteries-included HTTP client for Rust, with async and blocking Clients, JSON, proxies, cookies, and WASM.

You already depend on the zstd crate for content encoding; Cargo.toml pins zstd = "^0.13".

Swapping that layer for rusty_zstd puts untrusted response bytes on a #![deny(unsafe_code)] codec (one audited SIMD island), with an empty tree — no zstd-sys, no C toolchain for contributors or wasm32/musl. Frames interoperate both ways with facebook/zstd v1.5.7 (rusty_zstd README). Client, TLS, redirects, and cookies stay as they are. Size is within ~2–4% of C on that README's corpus. Not a rip-and-replace ask.

How to integrate

Smallest path is a trial behind the existing zstd feature.

Add rusty_zstd in Cargo.toml (current version on crates.io; see the rusty_zstd README).

Map the zstd crate calls you use today onto rusty_zstd's library API — see that README for the surface rather than a guessed function list. reqwest::Client, your tests, and on-the-wire HTTP stay the same; only the content-encoding backend changes.

Remade With Rust & MATA

Remade With Rust rebuilds codecs, parsers, compression, identity, and storage in safe Rust so projects can drop C dependencies without giving up the codec surface. The rest of the org is at https://github.com/Remade-With-Rust if anything else fits the build. Close this issue if it is a poor fit.

  • x.com/farmer_timmm