What this package is like to depend on
Last release 10 days ago
13 Aug 2026
Ships fairly regularly
a new release about every 2 months
Rarely documented
notes for 10 of 68 stable releases
6 versions withdrawn
withdrawn after publishing
10 years old
93 releases · first in 2016
8 releases in the last 12 months
see the full history below
Release timeline
93 releases · Apr 2016 to Aug 2026Releases
latest 60 of 93-
2.9.013 Aug 2026Release notes
Open source →What's Changed
- fix: restore stack state after a failed sequence by @Baltsat in #1184
- fix: silence compiler and clippy warnings in tests and generator by @NiltonVolpato in #1186
- fix(debugger): upgrade rustyline to 13 for loongarch64 support by @tangaac in #1187
- fix(fuzz): set edition 2021 and add sql fuzz target by @estr3llas in #1189
- Add support for a fully-functional const PrattParser with optional macro for increased ergonomics by @NiltonVolpato in #1185
- Add fuzzing dictionaries and document them in FUZZING.md by @estr3llas in #1191
- Reject unescaped control characters in the JSON grammar by @hdimer in #1190
New Contributors
- @Baltsat made their first contribution in #1184
- @NiltonVolpato made their first contribution in #1186
- @tangaac made their first contribution in #1187
- @estr3llas made their first contribution in #1189
- @hdimer made their first contribution in #1190
Full Changelog: v2.8.8...v2.9.0
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.9", features = ["grammar-extras"] } -
2.8.822 Jul 2026Release notes
Open source →What's Changed
Full Changelog: v2.8.7...v2.8.8
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.8", features = ["grammar-extras"] } -
2.8.704 Jul 2026Release notes
Open source →What's Changed
- Keep
grammar.rsin tree by @konstin in #1159 - fix(test): make miette_error test independent of terminal by @MasterOfFeelingFish in #1164
- docs: add Panics sections to line_col() and PrattParser::parse() by @MasterOfFeelingFish in #1167
- Document panics in public API by @syu-toutousai in #1174
- Reject unescaped quote inside char literal in meta grammar by @chatman-media in #1175
New Contributors
- @konstin made their first contribution in #1159
- @MasterOfFeelingFish made their first contribution in #1164
- @syu-toutousai made their first contribution in #1174
- @chatman-media made their first contribution in #1175
Full Changelog: v2.8.6...v2.8.7
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.8", features = ["grammar-extras"] } - Keep
-
2.8.605 Feb 2026Release notes
Open source →What's Changed
- Fix memchr pest dependency to 2.4.0 by @nyurik in #1147
- New debugging span (using range). #1123 by @re-masashi in #1148
- Fix: change display impl to match as str by @Teolhyn in #1151
New Contributors
- @re-masashi made their first contribution in #1148
- @Teolhyn made their first contribution in #1151
Full Changelog: v2.8.5...v2.8.6
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.8", features = ["grammar-extras"] } -
2.8.503 Jan 2026Release notes
Open source →What's Changed
New Contributors
Full Changelog: v2.8.4...v2.8.5
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.8", features = ["grammar-extras"] } -
2.8.421 Nov 2025Release notes
Open source →What's Changed
- feat: add is_empty method to check if iterator contains no pairs by @nyurik in #1132
- Fix newer clippy errors by @linkmauve in #1135
- Bump MSRV by @linkmauve in #1134
- Fix typos across the tree by @linkmauve in #1133
New Contributors
- @nyurik made their first contribution in #1132
- @linkmauve made their first contribution in #1135
Full Changelog: v2.8.3...v2.8.4
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.8", features = ["grammar-extras"] } -
2.8.303 Oct 2025Release notes
Open source →What's Changed
- deps: drop
thiserrorfor a manual impl by @CosmicHorrorDev in #1120 - feat: impl Error from core by @CosmicHorrorDev in #1121
Full Changelog: v2.8.2...v2.8.3
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.8", features = ["grammar-extras"] } - deps: drop
-
2.8.212 Sep 2025Release notes
Open source →What's Changed
- Fix a broken link to
Pair::as_spanby @jieyouxu in #1112 - Upgrade install-action from v1 to v2 by @tomtau in #1114
- update to Unicode 17.0.0 by @tomtau in #1116
New Contributors
Full Changelog: v2.8.1...v2.8.2
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.8", features = ["grammar-extras"] } - Fix a broken link to
-
2.8.115 Jun 2025Release notes
Open source →What's Changed
- Add reference to ws2markdown by @dertuxmalwieder in #1100
- remove once_cell (upon next MSRV bump!) by @2ndDerivative in #1102
The Minimum Supported Rust Version (MSRV) for default features is 1.80.0 now.
New Contributors
- @dertuxmalwieder made their first contribution in #1100
- @2ndDerivative made their first contribution in #1102
Full Changelog: v2.8.0...v2.8.1
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.8", features = ["grammar-extras"] } -
2.8.025 Mar 2025Release notes
Open source →What's Changed
- debugger: add long versions of the commands as well as all of their prefixes by @alpaylan in #1062
- Debugger: Fix deadlock on Windows by @zaddach in #1072
- Debugger: Fix command parsing on the debugger prompt by @zaddach in #1074
- Debugger: Allow specification of several breakpoints from cmdline args by @zaddach in #1075
- debugger: fixed cli-parsing of id command by @Giftzwerg02 in #1089
- rm some compiler warnings by @yshavit in #1093
- new rule: PUSH_LITERAL by @yshavit in #1092
A new rule
PUSH_LITERAL(...).PUSH_LITERAL("a"): This rule always matches and never consumes any input, and it pushes"a"to the stack. The argument must be a literal.Note
You need to enable the
"grammar-extras"feature as mentioned in the semantic versioning notes below in order to use this feature.This new rule accomplishes the goals of #880 (in a slightly different way). Instead of
PUSH_OTHER("-", " "), this is justPUSH_LITERAL(" "). If you wanted to match A and then push B, you just combine them via a sequence:"-" ~ PUSH_LITERAL(" ").This can be used to generalize quoted strings to a pair of matching but non-equal delimiters. For example, many programming languages let you express strings using either double or single quotes, and don't require escaping of the other:
string = ${ PUSH( "\"" | "'") ~ quoted_char* ~ POP } quoted_char = @{!PEEK ~ ANY } // simple version without escape sequences // will parse "a'b" or 'a"b'This happens to work because the starting and ending char are the same, but that's not always desirable. For example, we may want to allow strings to be delimited by either
(...)or<...>, with similar rules as above, such that(a>)and<a)>are both valid.With
PUSH_LITERAL, this becomes:string = ${ quote_open ~ quoted_char* ~ POP } quote_open = @{ ( "(" ~ PUSH_LITERAL(")") ) | ( "<" ~ PUSH_LITERAL(">") ) } quoted_char = @{!PEEK ~ ANY } // simple version without escape sequencesNew Contributors
- @alpaylan made their first contribution in #1062
- @zaddach made their first contribution in #1072
- @Giftzwerg02 made their first contribution in #1089
- @yshavit made their first contribution in #1093
Full Changelog: v2.7.15...v2.8.0
Warning: Semantic Versioning
Note that the node tag feature in 2.6.0 was a technically semver-breaking change even though it is a backwards-compatible / non-breaking change in the meta-grammar. There may be similar non-breaking changes to the meta-grammar between minor versions in the future. These non-breaking changes, however, may translate into semver-breaking changes due to the additional variants propagated from the generated
Ruleenum.This new feature caused issues in some Cargo version resolution situations where Cargo mixed different versions of pest dependencies. For this reason, these "grammar non-breaking but semver-breaking" changes are now available only under the "grammar-extras" feature flag. If you would like to use node tags (or other future grammar features), you can do so by enabling this flag on the pest_derive crate in your Cargo.toml:
... pest_derive = { version = "2.8", features = ["grammar-extras"] } -
2.7.1507 Dec 2024Nothing published for this version
-
2.7.1414 Oct 2024Nothing published for this version
-
2.7.1319 Sep 2024Nothing published for this version
-
2.7.1206 Sep 2024Nothing published for this version
-
2.7.1102 Jul 2024Nothing published for this version
-
2.7.1001 May 2024Nothing published for this version
-
2.7.902 Apr 2024 withdrawnNothing published for this version
-
2.7.802 Mar 2024Nothing published for this version
-
2.7.705 Feb 2024Nothing published for this version
-
2.7.604 Jan 2024Nothing published for this version
-
2.7.524 Oct 2023Nothing published for this version
-
2.7.426 Sep 2023Nothing published for this version
-
2.7.330 Aug 2023Nothing published for this version
-
2.7.201 Aug 2023Nothing published for this version
-
2.7.117 Jul 2023Nothing published for this version
-
2.7.022 Jun 2023Nothing published for this version
-
2.6.117 Jun 2023 withdrawnNothing published for this version
-
2.6.026 Apr 2023 withdrawnNothing published for this version
-
2.5.731 Mar 2023Nothing published for this version
-
2.5.605 Mar 2023Nothing published for this version
-
2.5.508 Feb 2023Nothing published for this version
-
2.5.424 Jan 2023Nothing published for this version
-
2.5.311 Jan 2023Nothing published for this version
-
2.5.223 Dec 2022Nothing published for this version
-
2.5.102 Dec 2022Nothing published for this version
-
2.5.024 Nov 2022Nothing published for this version
-
2.4.104 Nov 2022Nothing published for this version
-
2.4.001 Oct 2022Nothing published for this version
-
2.3.112 Sep 2022Nothing published for this version
-
2.3.021 Aug 2022Nothing published for this version
-
2.2.129 Jul 2022 withdrawnNothing published for this version
-
2.2.029 Jul 2022 withdrawnNothing published for this version
-
2.1.322 Feb 2020Nothing published for this version
-
2.1.202 Sep 2019Nothing published for this version
-
2.1.115 Apr 2019Nothing published for this version
-
2.1.021 Dec 2018Nothing published for this version
-
2.0.221 Oct 2018Nothing published for this version
-
2.0.102 Oct 2018Nothing published for this version
-
2.0.030 Sep 2018Nothing published for this version
-
1.0.621 Feb 2018Nothing published for this version
-
1.0.519 Feb 2018 withdrawnNothing published for this version
-
1.0.418 Feb 2018Nothing published for this version
-
1.0.326 Jan 2018Nothing published for this version
-
1.0.222 Jan 2018Nothing published for this version
-
1.0.120 Jan 2018Nothing published for this version
-
1.0.020 Jan 2018Nothing published for this version
-
1.0.0-rc.118 Jan 2018 pre-releaseNothing published for this version
-
1.0.0-rc.018 Jan 2018 pre-releaseNothing published for this version
-
1.0.0-beta.1719 Dec 2017 pre-releaseNothing published for this version
-
1.0.0-beta.1621 Oct 2017 pre-releaseNothing published for this version