reqwest README

The project's README from github.com/seanmonstar/reqwest. As one markdown file: README.md.

reqwest

crates.io Documentation MIT/Apache-2 licensed CI

An ergonomic, batteries-included HTTP Client for Rust.

Example

This asynchronous example uses Tokio and enables some optional features, so your Cargo.toml could look like this:

[dependencies]
reqwest = { version = "0.13", features = ["json"] }
tokio = { version = "1", features = ["full"] }

And then the code:

use std::collections::HashMap;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let resp = reqwest::get("https://httpbin.org/ip")
        .await?
        .json::<HashMap<String, String>>()
        .await?;
    println!("{resp:#?}");
    Ok(())
}

Commercial Support

For private advice, support, reviews, access to the maintainer, and the like, reach out for commercial support.

Requirements

By default, Reqwest uses rustls, but when the native-tls feature is enabled it will use the operating system TLS framework if available, meaning Windows and macOS. On Linux, it will use the available OpenSSL (see https://docs.rs/openssl for supported versions and more details) or fail to build if not found. Alternatively you can enable the native-tls-vendored feature to compile a copy of OpenSSL.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Sponsors

Support this project by becoming a sponsor.

reqwest (seanmonstar/reqwest)

Searching Database…

11.9K ·GitHub
Что это?Reqwest — это простая и мощная HTTP-клиентская библиотека для Rust: удобная в использовании и с богатой функциональностью «из коробки», поэтому всё типичное, что нужно HTTP-клиенту, работает сразу.
Это библиотека, которую я вызываю из своего кода на Rust, или отдельная утилита, которую я запускаю?Это крейт для Rust: вы добавляете его как зависимость в свой проект и вызываете из кода — отдельного исполняемого файла, который нужно устанавливать и запускать, нет.
Как начать делать запросы с его помощью?Добавьте reqwest в свой Cargo.toml, включив нужные необязательные фичи, и отправляйте запросы — асинхронно на Tokio или через встроенный блокирующий клиент, если не хотите возиться с async.
Нужно ли что-то ещё, например Tokio или TLS-библиотека?Асинхронный API работает поверх Tokio. Для HTTPS reqwest по умолчанию использует rustls, поэтому настраивать системный TLS не нужно; фича native-tls переключает на TLS-фреймворк операционной системы в Windows и macOS.
Есть ли подводные камни при сборке, о которых стоит знать?С native-tls на Linux reqwest линкуется с системным OpenSSL, и сборка падает, если он не установлен; фича native-tls-vendored решает проблему, собирая собственную копию OpenSSL.
Что есть из коробки, кроме обычных запросов?Простые тела запросов, JSON, формы в формате urlencoded, загрузки multipart, хранилище cookie, HTTP-прокси, настраиваемая политика редиректов и HTTPS — всё встроено, плюс выбор между async- и блокирующим клиентом.
Может ли он работать в браузере?Да — WASM является поддерживаемой целью, так что можно скомпилировать reqwest в WebAssembly и использовать тот же клиентский API с веб-страниц.
Есть ли платная поддержка, если помощи через GitHub issues недостаточно?Да — автор предлагает коммерческую поддержку: частные консультации, ревью кода и прямой доступ к мейнтейнеру через ссылку спонсорства в README.
What are similar projects?request, got, guzzle, hyper, actix-web, aiohttp, cpp-httplib, pingora
Size
2.8 MB
Stars
11.9K
Age
10y
Commits · 90 Days