9 个版本
使用旧的 Rust 2015
0.1.9 | 2018年10月19日 |
---|---|
0.1.8 | 2018年10月17日 |
0.1.1 | 2018年9月28日 |
28 在 #http-parser
76 每月下载量
用于 米尔斯坦互联网框架
57KB
1K SLoC
米尔斯坦-HTTP
二进制 HTTP 解析器和生成器。
许可协议
GNU GLPv3
lib.rs
:
米尔斯坦 HTTP
进行中,主要用于学习 Rust 编程。
该项目由 milstian-internet-framework 使用来解析和构建 HTTP 请求和响应。
主要目标
- 轻松快速地解码和编码 HTTP 请求和响应
使用方法
在项目中包含
这个包在 crates.io 上,可以通过在项目的 Cargo.toml
依赖项中添加时间来使用。
[dependencies]
milstian_http = "0.1.*"
并在您的 crate 根目录中
extern crate milstian_http;
将 TCP 流解码为 HTTP 请求
use milstian_http::request::{Message, Method, Protocol};
let request =
Message::from_tcp_stream(b"POST / HTTP/1.0\r\nAgent: Random browser\r\n\r\ntest=abc");
assert!(request.is_some());
let request_unwrapped = request.expect("POST HTTP1");
assert_eq!(request_unwrapped.request_line.method, Method::Post);
assert_eq!(request_unwrapped.request_line.protocol, Protocol::V1_0);
将协议、状态、头部和体编码到 HTTP 响应中
use milstian_http::response::Message;
use std::collections::HashMap;
assert_eq!(
Message::new(
"HTTP/1.0".to_string(),
"200 OK".to_string(),
HashMap::new(),
b"<html><body>Nothing here</body></html>".to_vec()
).to_bytes(),
b"HTTP/1.0 200 OK\r\n\r\n<html><body>Nothing here</body></html>".to_vec()
);