http_io 0.2.17

A library with limited dependencies containing an HTTP client and server.
Documentation
# http_io [![Latest Version]][crates.io]

[Latest Version]: https://img.shields.io/crates/v/http_io.svg
[crates.io]: https://crates.io/crates/http_io

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

```rust
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`](https://crates.io/crates/native-tls) as its library for TLS (HTTPS support). It supports two other TLS libraries, [`rustls`](https://crates.io/crates/rustls) and [`openssl`](https://crates.io/crates/openssl). These other "back-ends" can be selected using feaures

```bash
$ # 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
```