1 unstable release

0.1.0 Jan 20, 2023

#413 in HTTP client


Used in 2 crates

MIT license

375KB
6K SLoC

ratmom

this is ratmom, a libcurl-based http client for rust that makes sense.

a fork of isahc.

Crates.io Documentation License Crates.io downloads Maintenance Build

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