#rfc822 #rfc2822 #name-addr

已删除 sequoia-rfc2822

RFC 2822 名称地址解析器

0.10.0 2019年9月6日
0.9.0 2019年7月8日
0.8.0 2019年6月14日
0.7.0 2019年5月10日
0.6.0 2019年4月12日

#6 in #rfc822

Download history 27/week @ 2024-05-27 15/week @ 2024-06-03 24/week @ 2024-06-10 20/week @ 2024-06-17 15/week @ 2024-06-24 17/week @ 2024-07-01 17/week @ 2024-07-08 12/week @ 2024-07-15 11/week @ 2024-07-22 32/week @ 2024-07-29

每月下载 73 次

GPL-3.0 许可证

110KB
2.5K SLoC

RFC 2822 解析器。

目前,这个crate只识别RFC 2822name-addraddr-spec生成规则,即如下形式的

Name (Comment) <email@example.org>

email@example.org

尽管上述内容看起来很容易解析,但RFC 2822的空白和注释规则相当复杂。这个crate实现了整个语法。

作为一个扩展,除了ASCII之外,我们还识别所有UTF-8码点。NUL、控制符和特殊符号保留在RFC 2822中定义的意义。其他UTF-8码点被视为文本,如a

此外,我们还允许在atom生成规则中使用点(.)和at符号(@)。也就是说,atom生成规则从

atom            =       [CFWS] 1*atext [CFWS]

扩展到

atom               =       [CFWS] 1*atext_or_dot_or_at [CFWS]
atext_or_dot_or_at =       atext | DOT | AT

并且,因此

Professor Pippy P. Poopypants <pippy@jerome-horwitz.k12.oh.us>

被识别为name-addr,尽管RFC 2822严格要求将display-name引用

"Professor Pippy P. Poopypants" <pippy@jerome-horwitz.k12.oh.us>

同样地,

foo@bar.com <foo@bar.com>

被识别为name-addr,尽管@应该被引用。

此crate尚未实现新的RFC 5322

依赖项

~0.1–1.2MB
~23K SLoC