Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

35 Commits

Repository files navigation

Spingus

A simple, fast, and robust PDDL parser

Spingus has three goals:

  • Robust - Is tested on commenly used PDDL domains and problems
  • Fast - Optimised and benchmarked to be as fast as possible
  • Simple - Avoids rarely used PDDL syntax in favor of easy of use

Example

use spingus::problem::objects::Object;let input = "(define (problem prob) (:objects o1) (:init (p o1)) (:goal (not (p o3))) )";let problem = spingus::problem::parse(&input);assert_eq!(problem.name,Some("prob"));assert_eq!(problem.domain,None);assert_eq!(problem.objects,Some(vec![Object{ name:"o1", type_name:None}]));//...

Benchmark

Benchmarked on a i5-13600k with Criterion

ThroughputTime to Parse (see here)
Domain96 MiB/s4 µs
Problem726 MiB/s726 ns
Plan727 MiB/s378 ns

About

A PDDL parser

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages