NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2505 most downloaded on crates.io
Cucumber testing framework for Rust, with async support. Fully native, no external test runners or dependencies.
Last release 5 months ago
23 Apr 2026
Ships unpredictably
gaps range from 8 days to 1.5 years
Most releases are documented
notes for 31 of 39 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
40 releases · first in 2016
API docs Changelog
gherkin] crate to 0.16 version. (0d544772)And-like and But-like keywords at the beginning of Scenario, automatically considering them as Given-type steps. (gherkin#53)One column per quarter.
API docs Changelog
API docs Changelog
once_cell crate, for #[expect] attribute usage, and because of migration to 2024 edition. (4010c1ad, f1307038, b46930c3, 9705253b, 0c7dfc3c, a4cbd3d2)Arc with PartialEq/Hash pointer-optimized Source in events: (#352)
Source<gherkin::Feature> in event::Cucumber::Feature.Source<gherkin::Rule> in event::Feature::Rule.Source<gherkin::Scenario> in event::Feature::Scenario and event::Rule::Scenario.Source<gherkin::Step> in event::Scenario::Background and event::Scenario::Step.const the following constructor functions for input type polymorphism: (#352)
event::Cucumber::feature_started() and event::Cucumber::feature_finished().event::Cucumber::rule_started() and event::Cucumber::rule_finished().event::Scenario::step_started(), event::Scenario::step_passed() and event::Scenario::step_skipped().event::Scenario::background_step_started(), event::Scenario::background_step_passed() and event::Scenario::background_step_skipped().Examples table in expanded Scenario Outlines. (#371, #369)CUCUMBER_FILTER_TAGS environment variable support. (#372)API docs Changelog
API docs Changelog
API docs Changelog
World on hook/background step failure. (#313)API docs Changelog
API docs Changelog
Log variant to event::Scenario. (#258)embeddings field to writer::json::Step and writer::json::HookResult. (#261)report_time field to writer::libtest::Cli. (#264, #265)IsTerminal trait from std. (#288)tracing] crate integration behind the tracing feature flag. (#213, #258, #261)--report-time CLI option for writer::Libtest. (#264, #265)API docs Changelog
API docs Changelog
writer::FailOnSkipped::writer field with writer::FailOnSkipped::inner_writer() method. (56456e66)writer::Normalized::writer field with writer::Normalized::inner_writer() method. (56456e66)writer::Or::left/writer::Or::right fields with writer::Or::left_writer()/writer::Or::right_writer() methods. (56456e66)writer::Repeat::writer field with writer::Repeat::inner_writer() method. (56456e66)writer::Summarize::writer field with writer::Summarize::inner_writer() method. (56456e66)writer::Summarize::scenarios/writer::Summarize::steps fields with writer::Summarize::scenarios_stats()/writer::Summarize::steps_stats() methods. (56456e66)writer::Summarize::features/writer::Summarize::rules fields private. (56456e66)writer::Summarize::parsing_errors/writer::Summarize::failed_hooks fields private in favour of writer::Stats::parsing_errors()/writer::Stats::failed_hooks() methods. (56456e66)runner::Basic::fail_fast() method as Cucumber::fail_fast(). (#252)Cucumber::with_default_cli() method. (56456e66)Default implementation for CLI types. (56456e66)@serial Scenarios continue running after failure when --fail-fast() CLI option is specified. (#252)[0.17.0]: https://github.com/cucumber-rs/cucumber/tree/v0.17.0
[0.16.0]: https://github.com/cucumber-rs/cucumber/tree/v0.16.0
[0.15.3]: https://github.com/cucumber-rs/cucumber/tree/v0.15.3
[0.15.2]: https://github.com/cucumber-rs/cucumber/tree/v0.15.2
gherkin] crate to 0.13 version. (4cad49f8)Feature having comment and tag simultaneously. (4cad49f8, cucumber-rs/gherkin#37, cucumber-rs/gherkin#35)@retry, @serial and @allow.skipped tags semantics inheritance. (#237)[0.15.0]: https://github.com/cucumber-rs/cucumber/tree/v0.15.0
[0.14.2]: https://github.com/cucumber-rs/cucumber/tree/v0.14.2
[0.14.1]: https://github.com/cucumber-rs/cucumber/tree/v0.14.1
[0.14.0]: https://github.com/cucumber-rs/cucumber/tree/v0.14.0
#[derive(WorldInit)] with #[derive(World)] to remove the need of manual World trait implementation. (#219, #217)WorldInit trait into the World trait. (#219)ParsingFinished variant to event::Cucumber. (#220)writer::Failure/writer::discard::Failure as writer::Stats/writer::discard::Stats. (#220)WriterExt::discard_failure_writes() to WriterExt::discard_stats_writes(). (#220)Option<step::Location> field to event::Step::Passed and event::Step::Failed. (#221)event::Scenario into event::RetryableScenario for storing in other events. (#223, #212)retried_steps() method to writer::Stats. (#223, #212)writer::Libtest (enables IntelliJ Rust integration) behind the libtest feature flag. (#220)writer::Or to alternate between 2 Writers basing on a predicate. (#220)writer::Stats::passed_steps() and writer::Stats::skipped_steps() methods. (#220)FeatureExt::count_steps() method. (#220)fn matching a failed Step in output. (#221)Scenarios. (#223, #212)--retry, --retry-after and --retry-tag-filter CLI options. (#223, #212)[0.13.0]: https://github.com/cucumber-rs/cucumber/tree/v0.13.0
[0.12.2]: https://github.com/cucumber-rs/cucumber/tree/v0.12.2
Cucumber::after now gets the World instance even if some Step or a Hook before it has failed. (#209, #207)regex crate to 1.5.5 version to fix [CVE-2022-24713].
[0.12.0]: https://github.com/cucumber-rs/cucumber/tree/v0.12.0
step::Context::matches now contains regex capturing group names in addition to captured values. (#204)Parameter regex (previously was forbidden). (#204){string} parameter in [Cucumber Expressions] returning its enclosing quotes. (cucumber-rs/cucumber-expressions#7)[0.11.3]: https://github.com/cucumber-rs/cucumber/tree/v0.11.3
[0.11.2]: https://github.com/cucumber-rs/cucumber/tree/v0.11.2
[0.11.1]: https://github.com/cucumber-rs/cucumber/tree/v0.11.1
[0.11.0]: https://github.com/cucumber-rs/cucumber/tree/v0.11.0
World type parameter of WriterExt trait to methods. (#160)Normalized and Summarized Writers to Normalize and Summarize. (#162)writer::Basic Default impl and change writer::Basic::new() return type to writer::Normalize<writer::Basic>. (#162)const assertions. (cef3d480)gherkin] crate instead of [gherkin_rust]. (e2a41ab0)@allow_skipped built-in tag to @allow.skipped. (#181)clap] from structopt. (#188, #155)verbose CLI option of writer::Basic: (#193, #192)
-v default behavior (no additional output).-vv additionally output World on failed steps.-vvv additionally output docstrings (old behavior).Result. (#151)writer::Basic. (#147)writer::JUnit (JUnit XML report) behind the output-junit feature flag. (#147)writer::Json (Cucumber JSON format) behind the output-json feature flag. (#159)writer::Tee for outputting to multiple terminating Writers simultaneously. (#160)writer::discard::Arbitrary and writer::discard::Failure for providing no-op implementations of the corresponding Writer traits. (#160)Writers pipelines:
#[given(expr = ...)], #[when(expr = ...)] and #[then(expr = ...)] syntax. (#157)#[derive(cucumber::Parameter)] macro. (#168)Feature and Rule with Scenario when filtering with --tags CLI option. (#166)writer::AssertNormalized forcing Normalized implementation. (#182)cli::Colored trait for propagating Coloring to arbitrary Writers. (#189, #186)Nothing published for this version
[0.10.2]: https://github.com/cucumber-rs/cucumber/tree/v0.10.2
[0.10.1]: https://github.com/cucumber-rs/cucumber/tree/v0.10.1
[0.10.0]: https://github.com/cucumber-rs/cucumber/tree/v0.10.0
cucumber.Parser, Runner, Writer;macros feature by default.#[given(step)], #[when(step)] and #[then(step)] function argument attributes with a single #[step]. (#128)&mut World instead of World. (#128)#[step] argument of step functions Step instead of StepContext again, while test callbacks still receive StepContext as a second parameter. (#128)&mut World as their last parameter. (#142)Scenarios concurrently. (#128)timestamps Cargo feature that enables collecting of timestamps for all the happened events during tests execution (useful for Writers which format requires them) (#145).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
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 →