3 个版本 (破坏性更新)

0.3.0 2024年3月11日
0.2.0 2024年1月5日
0.1.0 2023年12月20日

97解析工具

Download history 148/week @ 2024-03-08 48/week @ 2024-03-15 31/week @ 2024-03-29 2/week @ 2024-04-05

每月 99 次下载

MIT 许可证

57KB
520

Build status Crates.io Documentation Rust 1.53+

唯一结果解析器组合器

parcours 是一个极简的crate,用于帮助创建解析器和词法分析器。它提供了一组用于返回唯一结果的解析器组合器;即最多一个输出。

“parcours”这个名字灵感来源于运动 Parkour,其中练习者试图“以最快、最有效的方式从点A到达点B,不使用辅助设备”。

在相同的意义上,parcours 只提供了非常基本的构建块用于解析器,但这些构建块非常通用,并且开销非常小,因此您几乎可以用它们做任何事情。

特性

  • no_std 和不依赖 alloc → 适用于受限(嵌入式)环境
  • 没有其他依赖
  • 零拷贝解析
  • 快速构建时间:带有 --release 的 JSON 解析器大约 600ms
  • 高性能
  • 适用于任何类型的输入(提供 &str&[T] 的辅助工具)
  • 优先级提升

在我开始编写parcours的过程中,我才发现了 lip crate。它在Rust生态系统中最接近parcours。除此之外,还有许多解析器组合器crate。我亲自使用 nomchumsky 实现了相当复杂的解析器,这两个crate都提供了用于常见用例的良好机制,但当我想要做这些crate未打算实现的事情时,我总是很苦恼。相比之下,parcours 提供的机制更少,我希望这使其更加灵活。

没有运行时依赖