用标准库写一个博客
2026-08-03
这个博客的 HTTP 服务器、路由、Markdown 渲染,全部由 Rust 标准库完成。
手写 HTTP 服务器
Rust 标准库提供了 std::net::TcpListener:监听 8080 端口,每个连接开一个线程,解析请求行,返回响应:
let listener = TcpListener::bind("127.0.0.1:8080")?;
for stream in listener.incoming() {
thread::spawn(move || handle(stream));
}
迷你 Markdown 渲染器
markdown.rs 里约两百行,支持标题、代码块、引用、列表、分隔线,以及粗体、斜体、行内代码、链接。
实现思路:逐行解析成块(标题、段落、代码、列表……),再逐块渲染;行内样式从左到右扫描一次,所有文本先做 HTML 转义。
零依赖意味着什么
- 编译只需一条命令,没有网络请求,没有版本冲突
- 单一静态二进制,部署就是拷贝一个文件
- 没有依赖,就没有依赖带来的漏洞
代价
没有 HTTPS、没有 HTTP/2、没有模板引擎。但对一个「极简」博客来说,这恰恰是它想要的。
极简不是没有东西,而是没有多余的东西。