9 个版本

使用旧的 Rust 2015

0.1.9 2018年10月19日
0.1.8 2018年10月17日
0.1.1 2018年9月28日

28#http-parser

Download history 3/week @ 2024-06-30 73/week @ 2024-07-28

76 每月下载量
用于 米尔斯坦互联网框架

GPL-3.0-only

57KB
1K SLoC

米尔斯坦-HTTP

二进制 HTTP 解析器和生成器。

许可协议

GNU GLPv3


lib.rs:

米尔斯坦 HTTP

Milstian Logo

进行中,主要用于学习 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()
);

无运行时依赖