HTTP client for embedded devices
The reqwless crate implements an HTTP client that can be used in no_std environment, with any transport that implements the
traits from the embedded-io crate. No alloc or std lib required!
It offers two sets of APIs:
- A low-level
requestAPI which allows you to contruct HTTP requests and write them to aembedded-iotransport. - A higher level
clientAPI which uses theembedded-nal-async(+ optionalembedded-tls) crates to establish TCP + TLS connections.
example
let url = format!;
let mut client = new; // Types implementing embedded-nal-async
let mut rx_buf = ;
let response = client
.request
.await
.unwrap
.body
.content_type
.send
.await
.unwrap;
The client is still lacking many features, but can perform basic HTTP GET/PUT/POST/DELETE requests with payloads. However, not all content types and status codes are implemented, and are added on a need basis. For TLS, it uses embedded-tls as the transport.
If you are missing a feature or would like an improvement, please raise an issue or a PR.
Minimum supported Rust version (MSRV)
reqwless requires a feature from nightly to compile embedded-io with async support:
async_fn_in_traitimpl_trait_projections
This feature is complete, but is not yet merged to stable.