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.
Built using hyper.
This release has a major api change. Please check the migration guide for more information. Keep in mind API for prior to 0.1.0 is subject to change. Proper deprecation will be added in the next stable release.
deboa = { version = "0.0.9" }use deboa::{
request::{DeboaRequest, FetchWith, get},
Result,
};
use deboa_tokio::Client;
use deboa_extras::serde::json::JsonBody;
#[tokio::main]
async fn main() -> Result<()> {
// Create a new Client instance, set timeouts, catches and protocol.
let client = Client::new();
let posts: Vec<Post> = get("https://jsonplaceholder.typicode.com/posts")?
.header(header::CONTENT_TYPE, "application/json")
.send_with(&client)
.await?
.body_as(JsonBody)
.await?;
println!("posts: {:#?}", posts);
Ok(())
}The core create of http client.
A crate with bora macro, for easy rest client generation. Bora macro is now part of vamo-macros.
Deboa-extras has moved to https://github.com/ararog/deboa-contrib.
A crate with collection of convenience macros for deboa. It is close equivalent to apisauce for axios, where one macro does it all, from request to response. It used to be the home of bora macro, which has been moved to vamo-macros crate.
Deboa implementation for smol runtime.
Deboa implmentation for tokio runtime.
Vamo has moved to https://github.com/ararog/vamo.
Vamo-macros has moved to https://github.com/ararog/vamo.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Rogerio Pereira Araujo rogerio.araujo@gmail.com