Skip to content

rosetta-rs/parse-rosetta-rs

Repository files navigation

Rust Parsing Benchmarks

This repo tries to assess Rust parsing performance.

crate parser type action code integration input type precedence parameterized rules streaming input
chumsky combinators in source library &str, &[u8], custom pratt Yes Yes
combine combinators in source library &str ? ? ?
grmtools CFG in grammar library ? ? ? ?
lalrpop LR(1) in grammar build script &str none Yes No
lelwel LL(1) in grammar build script &str pratt Yes No
logos lexer in source proc macro &str, &[u8] ? ? ?
nom combinators in source library &str, &[u8], custom pratt Yes Yes
parol LL(k)/LALR(1) in source build script &str climbing No No
peg PEG in grammar proc macro (block) &str, &[T], custom climbing Yes No
pest PEG external proc macro (file) &str climbing No No
winnow combinators in source library &str, &[T], custom none Yes Yes
yap combinators in source library &str, &[T], custom none Yes ?

Formerly, we compared:

  • pom: lack of notoriety

Results

Name Overhead (release) Build (debug) Parse (release) Downloads Version
null 0 KiB 249ms 3ms - -
grmtools 2,610 KiB 11s 164ms Download count v0.13.10
chumsky 150 KiB 4s 32ms Download count v0.10.1
combine 181 KiB 4s 53ms Download count v3.8.1
lalrpop 1,523 KiB 11s 37ms Download count v0.22.2
lelwel 142 KiB 4s 10ms Download count v0.8.0
logos 90 KiB 4s 21ms Download count v0.15.0
nom 98 KiB 3s 65ms Download count v8.0.0
parol 492 KiB 9s 174ms Download count v4.1.0
peg 80 KiB 2s 23ms Download count v0.8.5
pest 130 KiB 5s 61ms Download count v2.8.1
serde_json 59 KiB 3s 14ms Download count v1.0.142
winnow 75 KiB 2s 28ms Download count v0.7.12
yap 61 KiB 527ms 33ms Download count v0.12.0

System: Linux 6.8.0-62-generic (x86_64), rustc 1.89.0 (29483883e 2025-08-04) w/ -j 8

Note:

  • For more "Parse (release)" comparisons, see parser_benchmarks
  • Parsers have not been validated and might have differing levels of quality (#5)

Running the Benchmarks

$ ./bench.py
$ ./format.py

About

Comparing parser APIs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 13

Languages