OxHTTP
OxHTTP is a simple and naive synchronous implementation of HTTP 1.1 in Rust. It provides both a client and a server. It does not aim to be a fully-working-in-all-cases HTTP implementation but to be only a naive one to be use in simple usecases.
Client
OxHTTP provides a client. It aims at following the basic concepts of the Web Fetch standard without the bits specific to web browsers (context, CORS...).
HTTPS is supported behind the disabled by default native-tls
feature (to use the current system native implementation) or rustls
feature (to use Rustls).
Example:
use Client;
use ;
use Read;
let client = new;
let response = client.request.unwrap;
assert_eq!;
assert_eq!;
let body = response.into_body.to_string.unwrap;
Server
OxHTTP provides a threaded HTTP server. It is still a work in progress. Use at your own risks behind a reverse proxy!
Example:
use Server;
use ;
use Duration;
// Builds a new server that returns a 404 everywhere except for "/" where it returns the body 'home'
let mut server = new;
// Raise a timeout error if the client does not respond after 10s.
server.set_global_timeout;
// Listen to localhost:8080
server.listen.unwrap;
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or
<http://www.apache.org/licenses/LICENSE-2.0>
) - MIT license (LICENSE-MIT or
<http://opensource.org/licenses/MIT>
)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in OxHTTP by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.