8 个版本
0.1.7 | 2024年6月7日 |
---|---|
0.1.6 | 2024年5月24日 |
0.1.4 | 2024年4月8日 |
0.1.3 | 2024年2月20日 |
#31 in 机器人
每月 46 次下载
在 2 crates 中使用
32KB
838 代码行
pddlp
一个简单、快速且健壮的 PDDL 解析器
pddlp 有三个目标
- 健壮 - 在常用的 PDDL 领域和问题上进行了测试
- 快速 - 优化并基准测试,尽可能快
- 简单 - 为了易于使用,避免使用不常用的 PDDL 语法
示例
let input = "(define (problem prob)
(:objects o1)
(:init (p o1))
(:goal (not (p o3)))
)";
let problem = pddlp::problem::parse(&input)?;
assert_eq!(problem.name, Some("prob"));
assert_eq!(problem.domain, None);
assert_eq!(problem.objects, Some(vec![pddlp::problem::Object { name: "o1", type_name: None }]));
//...
基准测试
在 AMD Ryzen 5 5600X 6 核处理器 × 6 上进行基准测试,使用 Criterion
吞吐量 | 解析时间(见此处) | |
---|---|---|
领域 | 436 MiB/s | 2 µs |
问题 | 468 MiB/s | 523 ns |
计划 | 507 MiB/s | 93 ns |
依赖项
~3.5MB
~55K SLoC