Skip to content

bobbobbio/http_io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f916aaa · Nov 20, 2024
Nov 20, 2024
Nov 20, 2024
Nov 20, 2024
Mar 13, 2019
Nov 20, 2024
Sep 9, 2022
Nov 20, 2024
Dec 4, 2022
Dec 4, 2022
Dec 4, 2022
Dec 4, 2022
Dec 4, 2022
Dec 4, 2022

Repository files navigation

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

About

HTTP client / server with limited dependencies

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published