1 unstable release
0.1.0 | Jan 20, 2023 |
---|
#413 in HTTP client
Used in 2 crates
375KB
6K
SLoC
ratmom
this is ratmom, a libcurl-based http client for rust that makes sense.
a fork of isahc.
differences from isahc (TODO)
- no more synchronous API
- fuck http crate
- url crate used for url like everywhere else
- ratcurl, our fork of the curl crate used
- curl-impersonate support
unchanged key features
- full support for HTTP/1.1 and HTTP/2.
- configurable request timeouts, redirect policies, Unix sockets, and many more settings.
- a runtime-agnostic asynchronous API with support for async/await.
- fully asynchronous core, with incremental reading and writing of request and response bodies and connection multiplexing.
- sessions and cookie persistence.
- automatic request cancellation on drop.
documentation
please check out the documentation for details on what ratmom can do and how to use it. to get you started, here is a really simple, complete example that spits out the response body from https://example.org:
use ratmom::prelude::*;
fn main() -> Result<(), ratmom::Error> {
// Send a GET request and wait for the response headers.
// Must be `mut` so we can read the response body.
let mut response = ratmom::get("https://example.org")?;
// Print some basic info about the response to standard output.
println!("Status: {}", response.status());
println!("Headers: {:#?}", response.headers());
// Read the response body as text into a string and print it.
print!("{}", response.text()?);
Ok(())
}
click here for documentation on the latest version.
getting help
need some help with something ratmom-related? ask a question on our issues page, where we are happy to try and answer your questions!
installation
install via cargo by adding to your Cargo.toml
file:
[dependencies]
ratmom = "0.1"
or simply:
cargo add ratmom
license
this project's source code and documentation are licensed under the MIT license. see the LICENSE file for details.
Dependencies
~5–23MB
~305K SLoC