Fexumo

用标准库写一个博客

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、没有模板引擎。但对一个「极简」博客来说,这恰恰是它想要的。

极简不是没有东西,而是没有多余的东西。