#http #hyper #tokio #https

simplist

简单直接的HTTP,当你只是想发个请求的时候!支持基于tokio的异步、传统同步和异步await模型

5个版本

使用旧的Rust 2015

0.0.5 2017年8月30日
0.0.4 2017年7月17日
0.0.3 2017年7月16日
0.0.2 2017年7月16日
0.0.1 2017年7月16日

#76 in #https

MIT/Apache

120KB
1.5K SLoC

simplist: 简单直接的HTTP。

这是一个简单直接的HTTP库,当你只是想发个请求的时候!

这个crate是在hyper之上一个非常薄且轻量级的封装,并提供基于futures的异步、传统同步和异步await模型的API。

HttpClient 是制作HTTP请求的主要接口。

特性。

  • nightly:当启用时,simplist将使用implFuture在每个请求中进行约一次分配,这是一个实验性特性。在为稳定编译器编译时,simplist需要装箱一些future类型,因为它们不能被命名。
  • scramble:当启用时,simplist将编译出大多数错误信息,用空字符串替换它们。

如果你使用的是nightly编译器,请在你的cargo.toml中启用nightly特性!

simplist = { version = "0.0.5", features = ["nightly"] }

示例。

异步,使用await语法。

use simplist::HttpClient;

let http = HttpClient::new(handle);
let html = await http.get_string("https://hinaria.com")?;

println!("{:?}", html);
// => "<!doctype html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\"> ..."

异步,使用future回调。

use simplist::HttpClient;

let http   = HttpClient::new(handle);
let future = http.get_string("https://hinaria.com").and_then(|html| {
    println!("{:?}", html);
    Ok(())
}).map_err(|_| ());

handle.spawn(future);
// => "<!doctype html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\"> ..."

同步。

use simplist::HttpSyncClient;

let http = HttpSyncClient::new(handle);
let html = http.get_string("https://hinaria.com")?;

println!("{:?}", html);
// => "<!doctype html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\"> ..."

依赖项

~8.5MB
~146K SLoC