3 个版本 (破坏性更新)
0.3.0 | 2024年3月11日 |
---|---|
0.2.0 | 2024年1月5日 |
0.1.0 | 2023年12月20日 |
97 在 解析工具
每月 99 次下载
57KB
520 行
唯一结果解析器组合器
parcours 是一个极简的crate,用于帮助创建解析器和词法分析器。它提供了一组用于返回唯一结果的解析器组合器;即最多一个输出。
“parcours”这个名字灵感来源于运动 Parkour,其中练习者试图“以最快、最有效的方式从点A到达点B,不使用辅助设备”。
在相同的意义上,parcours 只提供了非常基本的构建块用于解析器,但这些构建块非常通用,并且开销非常小,因此您几乎可以用它们做任何事情。
特性
no_std
和不依赖alloc
→ 适用于受限(嵌入式)环境- 没有其他依赖
- 零拷贝解析
- 快速构建时间:带有
--release
的 JSON 解析器大约 600ms - 高性能
- 适用于任何类型的输入(提供
&str
和&[T]
的辅助工具) - 优先级提升
相关工作
在我开始编写parcours的过程中,我才发现了 lip crate。它在Rust生态系统中最接近parcours。除此之外,还有许多解析器组合器crate。我亲自使用 nom 和 chumsky 实现了相当复杂的解析器,这两个crate都提供了用于常见用例的良好机制,但当我想要做这些crate未打算实现的事情时,我总是很苦恼。相比之下,parcours 提供的机制更少,我希望这使其更加灵活。