http_io

Crates.iohttp_io
lib.rshttp_io
version0.3.0
sourcesrc
created_at2019-03-13 07:07:41.234433
updated_at2024-11-20 03:02:57.892806
descriptionA library with limited dependencies containing an HTTP client and server.
homepagehttps://github.com/bobbobbio/http_io
repositoryhttps://github.com/bobbobbio/http_io
max_upload_size
id120399
size188,402
Remi Bernotavicius (bobbobbio)

documentation

README

http_io Latest Version

Crate containing HTTP client and server.

  • Designed to have limited dependencies, supports #![no_std].
  • Focus on streaming IO.
  • Support for providing your own transport.
  • Supports HTTPS

The no_std build requires nightly since it relies on the alloc crate.

Example

use http_io::error::Result;
use std::fs::File;
use std::io;

fn main() -> Result<()> {
    // Stream contents of url to stdout
    let mut body = http_io::client::get("https://postman-echo.com/get")?;
    io::copy(&mut body, &mut std::io::stdout())?;

    // Stream contents of file to remote server
    let file = File::open("src/client.rs")?;
    http_io::client::put("https://postman-echo.com/put", file)?;
    Ok(())
}

Choosing a TLS backend

By default http_io uses native-tls as its library for TLS (HTTPS support). It supports two other TLS libraries, rustls and openssl. These other "back-ends" can be selected using feaures

$ # If you want to use `rustls`:
$ cargo build --no-default-features --features std,ssl-rustls
$ # If you want to use `openssl`:
$ cargo build --no-default-features --features std,ssl-openssl
Commit count: 120

cargo fmt