Arios
Arios is a small HTTP client crate written in Rust.
The project started as a study exercise and is being refactored into a publishable library crate. The current focus is on manual HTTP request/response handling, response metadata parsing, and a small public API.
Status
Arios currently supports:
GET,POST,PUT,PATCH,DELETE,HEAD, andOPTIONS- HTTP and HTTPS
- HTTPS backed by
rustlswith native platform root certificates - configurable
AcceptandContent-Typeheaders - response metadata such as status code, content-type, charset, and content-length
- access to raw response bytes
- text decoding with built-in support for UTF-8, ISO-8859-1, and US-ASCII
- UTF-8 fallback when no charset is provided or when the charset is not supported
- explicit
AriosError::HttpStatuserrors for4xxand5xxresponses
Current limitations:
- the API is still evolving
- URL parsing is intentionally simple
- advanced HTTP features are still limited
HEADresponses are represented with an empty response body- HTTPS depends on the operating system certificate store being available
Installation
Add the crate to your Cargo.toml:
[]
= "0.2.0"
Example: GET
use ;
See also: examples/basic_get.rs
Example: POST
use ;
See also: examples/basic_post.rs
Other Request Methods
Arios also exposes:
head()for header-only requestsoptions()for capability and method discoveryput()andpatch()for body-carrying updatesdelete()for resource deletion requests
head() returns an AriosResponse with an empty body. Calls that receive 4xx
or 5xx statuses return AriosError::HttpStatus instead of a successful
response value.
Response API
AriosResponse exposes:
bytes()for raw response bytestext()for decoded textual content- public metadata fields such as
code,status,content_type,charset, andcontent_length
text() currently supports utf-8, iso-8859-1, and us-ascii. If the response does not declare a charset, or declares one that Arios does not support yet, decoding falls back to UTF-8.