#document #mime #parser #nested #robust #multipart #input

nightly crumble

一个用于解析 MIME 文档的健壮、轻量级库

4 个版本

0.10.2 2020年10月11日
0.10.1 2020年10月4日
0.10.0 2019年9月28日
0.9.0 2019年9月13日

#12 in #documents

GPL-3.0-or-later

1.5MB
891 行代码,不包括注释

crumble

一个用于解析 mime 文档的健壮、轻量级库。支持 UTF-8、多部分和嵌套结构。将尝试(通常成功)解析不符合规范的文档。

用法

只需将 crumble = "0.10.1" 添加到您的依赖项中。然后,给定一个 MIME 文档的 String 表示,使用 Message::new(&mime) 进行解析。

文档:https://docs.rs/crumble/ 仓:https://crates.io/crates/crumble

注意

  • 仅返回一个简单的 "AST"。您应该将其封装在例如 crinkle 中,以便它变得有用。
  • 欢迎提供无法解析的 MIME 文档示例!
  • 镜像在 GitHub 上,上游在 sr.ht

许可证

GPLv3+


lib.rs:

crumble

一个用于解析 MIME 文档的健壮、轻量级库。

支持 UTF-8、多部分文档和嵌套文档。 crumble 假设输入主要是符合规范的,并尝试尽可能好地解析输入。

输出是一个最小化的类似 AST 的结构,没有过滤。这个结构应该进一步处理以产生有用的结果。例如,请参见 crinkle

示例

use crumble::Message;
let message = load_mime_file(); // Example! The consumer must have some source of documents
let message = Message::new(&message)?; // Handle errors

依赖项

~3.5–5MB
~85K SLoC