deboa
Description
deboa ("fine" portuguese slang) is a straightforward, non opinionated, developer-centric HTTP client library for Rust. It offers a rich array of modern features—from flexible authentication and serialization formats to runtime compatibility and middleware support—while maintaining simplicity and ease of use. It’s especially well-suited for Rust projects that require a lightweight, efficient HTTP client without sacrificing control or extensibility.
Attention
This release has a major api change. Please check the migration guide for more information.
Features
- easily add, remove and update headers
- helpers to add basic and bearer auth
- set retries and timeout
- pluggable catchers (interceptors)
- pluggable compression (gzip, deflate, br)
- pluggable serialization (json, xml, msgpack)
- cookies support
- urlencoded and multipart forms
- comprehensive error handling
- response streaming
- upgrade support (websocket, etc.)
- runtime compatibility (tokio and smol)
- http1/2/3 support
Benchmark Results
As of the latest benchmark run, Deboa demonstrates competitive performance compared to Reqwest.
Get Request
Deboa |
Reqwest |
|
|---|---|---|
100 |
46.37 ms (✅ 1.00x) |
48.67 ms (✅ 1.05x slower) |
500 |
46.47 ms (✅ 1.00x) |
47.32 ms (✅ 1.02x slower) |
1000 |
46.36 ms (✅ 1.00x) |
47.34 ms (✅ 1.02x slower) |
Install
Either run from command line:
cargo add deboa http
Or add to your Cargo.toml:
= { = "0.0.9", = ["http1", "tokio-rt"] }
= "1.3.1"
Crate features
- tokio-rt (default)
- smol-rt
- http1
- http2 (default)
- http3
- tokio-rust-tls (default)
- tokio-native-tls
- smol-rust-tls
- smol-native-tls
Usage
use ;
use ;
use Method;
async
Create project from template
You can create a new project from the template using cargo generate:
cargo generate ararog/deboa-templates
License
MIT
Author
Rogerio Pereira Araujo rogerio.araujo@gmail.com