NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #432 most downloaded on crates.io
Fast parser combinators on arbitrary streams with zero-copy support.
Last release 1 months ago
25 Aug 2026
Ships unpredictably
gaps range from 2 weeks to 2.4 years
Most releases are documented
notes for 45 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
11 years old
82 releases · first in 2015
usage of BytesMut in extend_buf_sync - ( b705882 ) - Paolo Barbolini
BytesMut in extend_buf_sync - (b705882) - Paolo Barboliniopaque - (6a3701d) - Christian AistleitnerBytesMut in extend_buf_sync - (b705882) - Paolo Barboliniopaque - (6a3701d) - Christian Aistleitner<a name="v4.6.7"></a>
<a name="v4.6.6"></a>
memchr: use non deprecated feature std instead of use_std
refactor: Extract less-generic code from sequence's add_errors (-5%)
<a name="v4.6.4"></a>
<a name="v4.6.3"></a>
<a name="v4.6.3"></a>
<a name="v4.6.2"></a>
<a name="v4.6.1"></a>
<a name="v4.6.0"></a>
One column per quarter.
chore: Release combine version 4.6.7
chore: Release combine version 4.6.7
<a name="v4.6.6"></a>
(cargo-release) combine version 4.6.6
(cargo-release) combine version 4.6.6
memchr: use non deprecated feature std instead of use_std
refactor: Extract less-generic code from sequence's add_errors (-5%)
<a name="v4.6.4"></a>
(cargo-release) combine version 4.6.4
(cargo-release) combine version 4.6.4
(cargo-release) combine version 4.6.3
(cargo-release) combine version 4.6.2
(cargo-release) combine version 4.6.2
(cargo-release) combine version 4.6.1
(cargo-release) combine version 4.6.1
<a name="v4.6.0"></a>
<a name="v4.5.2"></a>
(cargo-release) combine version 4.6.0
(cargo-release) combine version 4.6.0
<a name="v4.5.2"></a>
<a name="v4.5.1"></a>
<a name="v4.5.0"></a>
(cargo-release) combine version 4.5.2
(cargo-release) combine version 4.5.2
(cargo-release) combine version 4.5.1
(cargo-release) combine version 4.5.1
<a name="v4.5.0"></a>
<a name="v4.4.0"></a>
<a name="v4.3.2"></a>
(cargo-release) combine version 4.5.0
(cargo-release) combine version 4.5.0
<a name="v4.4.0"></a>
Add support for decoding using tokio_03
<a name="v4.3.2"></a>
<a name="v4.3.1"></a>
<a name="v4.3.0"></a>
<a name="v4.3.1"></a>
Make the decode macros work for redis
Specialize decoding on BufReader
Pre-allocate collections for count* parsers
Add any_send_sync_partial_state
Make the decode macros take read by parameter (aa813fb1, breaks #)
Remove deprecated re-exports (b4e23207, breaks #)
<a name="4.0.0"></a>
<a name="4.0.0-beta.2"></a>
decode_buf_read! to parse BufRead without (dbe23ce9)<a name="4.0.0-beta.1"></a>
StreamOnce::Item to Token (74a0bbd3, breaks #, #)&mut I in decode (e154dbc2, breaks #)StreamOnce::Item to Token (74a0bbd3, breaks #, #)&mut I in decode (e154dbc2, breaks #)From<S> for easy::Stream<S> (8f695cc6)<a name="4.1.0-alpha.2"></a>
From<S> for easy::Stream<S> (8f695cc6)&[u8] in errors (6b62a857, closes #249)<a name="4.0.0-alpha.1"></a>
<a name="3.8.1"></a>
Relax the decode*! macros to no longer need BufRead
Remove deprecated re-exports (b4e23207, breaks #)
decode_buf_read! to parse BufRead without (dbe23ce9)<a name="4.0.0-beta.1"></a>
Handle partial parsing in the num parsers
StreamOnce::Item to Token (74a0bbd3, breaks #, #)&mut I in decode (e154dbc2, breaks #)StreamOnce::Item to Token (74a0bbd3, breaks #, #)&mut I in decode (e154dbc2, breaks #)From<S> for easy::Stream<S> (8f695cc6)<a name="4.1.0-alpha.2"></a>
Allow ReadStream parsers to use &[u8] in errors (6b62a857, closes #249)
Drop support for regex 0.2 (bf6aeb06, closes #247, breaks #)
<a name="3.8.1"></a>
take_fn/take_until* (bae1e3bb)<a name="3.8.0"></a>
Handle partial parsing in take_fn/take_until*
Add take_fn and take_until_bytes
<a name="3.6.7"></a>
<a name="3.6.6"></a>
<a name="3.6.5"></a>
<a name="3.6.3"></a>
<a name="3.6.2"></a>
<a name="3.6.1"></a>
<a name="3.6.0"></a>
Forward is_partial in all Stream adaptors
Fix two inconsisties regarding EOI #227
<a name="3.6.5"></a>
not_followed_by should fail on empty successful parses
<a name="3.6.2"></a>
<a name="3.6.1"></a>
Deprecates try in favor of attempt
Deprecates try in favor of attempt
try in favor of attempt (a9c79321)attempt, a 2018-compatible alias for try (18edaec4)<a name="3.5.3"></a>
then examples (f2018db5)<a name="3.5.2"></a>
<a name="3.5.1"></a>
<a name="3.5.0"></a>
Allow regex parsers to use regex-1.0
Don't report previous errors from expected
Add all errors of nested choice parsers
<a name="3.5.0"></a>
<a name="3.4.0"></a>
opaque parser (1a1123f5)<a name="3.3.6"></a>
Add opaque! as convenience over the opaque parser
Add tokens2 as a simpler version of tokens
opaque parser (1a1123f5)<a name="3.3.6"></a>
<a name="3.3.5"></a>
<a name="3.3.4"></a>
<a name="3.3.3"></a>
<a name="3.3.1"></a>
Items in take_until_range (4a690d65)<a name="v3.3.0"></a>
Don't forget the state in any_send_partial_state
<a name="3.3.5"></a>
Propagate the ParseMode in range::recognize
fix: Forward the partial mode through the parser! macro correctly
<a name="3.3.3"></a>
Parse from the start in sequence parsers in first mode
<a name="3.3.1"></a>
Nothing published for this version
Remove deprecated items (9107342a, breaks #)
Items in take_until_range (4a690d65)<a name="v3.3.0"></a>
<a name="v3.2.0"></a>
<a name="v3.1.0"></a>
num parsers to be used without RangeStream (b1cb0668)<a name="v3.0.0"></a>
3.0.0 is the final stabilization of all the changes made in the 3.x-alpha/beta releases. You can read more about these changes at https://marwes.github.io/2018/02/08/combine-3.html and https://www.reddit.com/r/rust/comments/6s792a/combine_250_and_300alpha1/
<a name="3.0.0-beta.1"></a>
then_partial parser (5d402f6b)Clone for Stream (3fc0b540, breaks #)parser! to be used within functions (916bb824)<a name="3.0.0-alpha.4"></a>
<a name=""></a>
<a name="v3.0.0-alpha.1"></a>
<a name="v2.5.0"></a>
<a name="v2.3.0"></a>
<a name="2.1.0"></a>
<a name="2.0.0"></a>
tokens parser (886c4523)Remove redundant state comparison in Iter (9d434c3f, breaks #)
<a name="v3.2.0"></a>
#### Features * Add any_send_partial_state
Allow the the num parsers to be used without RangeStream
3.0.0 is the final stabilization of all the changes made in the 3.x-alpha/beta releases. You can read more about these changes at https://marwes.githu
3.0.0 is the final stabilization of all the changes made in the 3.x-alpha/beta releases. You can read more about these changes at https://marwes.github.io/2018/02/08/combine-3.html and https://www.reddit.com/r/rust/comments/6s792a/combine_250_and_300alpha1/
<a name="3.0.0-beta.1"></a>
Encode parsers as resumable state machines 342fc47
then_partial parser (5d402f6b)Clone for Stream (3fc0b540, breaks #)parser! to be used within functions (916bb824)<a name="3.0.0-alpha.4"></a>
Nothing published for this version
Rename EasyStream -> Stream, ParsingError => ParseError ... (d2f4ab14, breaks #)
<a name=""></a>
* Implement Copy for more types
<a name="v3.0.0-alpha.1"></a>
Nothing published for this version
Remove deprecated items (9107342a, breaks #)
<a name="v2.5.0"></a>
Nothing published for this version
Nothing published for this version
Rename captures to captures_many and add a captures parser
<a name="v2.3.0"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →