#http-request #http #curl #client #sync

idcurl

Idiomatic synchronous http client based on curl

13 releases

0.4.3 Jul 12, 2022
0.4.2 Dec 21, 2020
0.4.0 Feb 15, 2020
0.3.2 Sep 20, 2019
0.1.1 Jun 17, 2019

#267 in HTTP client

Download history 34/week @ 2024-02-22 14/week @ 2024-02-29 44/week @ 2024-03-28 18/week @ 2024-04-04

62 downloads per month

BSD-2-Clause

28KB
727 lines

GitHub license Crates.io

Introduction

idcurl is a synchronous HTTP client using curl (and inheriting all of its protocol support).

It's useful if you absolutely don't want to use futures.

Examples

The most basic request:

let mut output = vec!();
idcurl::get("http://example.com")
	.expect("error making request")
	.copy_to(&mut output)
	.unwrap();

You can also configure your request:

let body = r#"{ "hello": "world" }"#;

let mut response = idcurl::Request::post(
	"http://example.com".to_string()
)
	.header("Content-Type", "application/json")
	.body(std::io::Cursor::new(body))
	.send()
	.expect("http request");
assert!(response.status().is_success());
std::io::copy(&mut response, &mut std::io::stdout())
	.expect("reading response");

lib.rs:

An idiomatic synchronous Rust library for making HTTP requests.

It's implemented in terms of curl.

Example

let mut output = vec!();
idcurl::get("http://example.com")
    .expect("error making request")
    .copy_to(&mut output)
    .unwrap();
let body = r#"{ "hello": "world" }"#;

let mut response = idcurl::Request::post(
    "http://example.com".to_string()
)
    .header("Content-Type", "application/json")
    .body(std::io::Cursor::new(body))
    .send()
    .expect("http request");
assert!(response.status().is_success());
std::io::copy(&mut response, &mut std::io::stdout())
    .expect("reading response");

Dependencies

~13–22MB
~312K SLoC