$ metal
v0.33.0MAJOR UPDATERust bindings for Metal
Latest Update Summary
Crate
Name: metal New version: 0.33.0 Release date: 2025-12-17T20:06:22.008564Z
Crate readme
Short description Cucumber testing framework for Rust
Long description
An implementation of the Cucumber testing framework for Rust. Fully native, no external test runners or dependencies. It allows for describing testing scenarios in .feature files and implementing the World trait to describe steps. It is compatible with Rust 1.88+ and does not use unsafe code.
Features • macros (default): Enables step attributes and auto-wiring. • timestamps: Enables timestamps collecting for all Cucumber events. • output-json (implies timestamps): Enables support for outputting in Cucumber JSON format. • output-junit (implies timestamps): Enables support for outputting JUnit XML report. • libtest (implies timestamps): Enables compatibility with Rust libtest's JSON output format. • tracing: Enables integration with tracing crate.
Code Examples Describe testing scenarios in .feature files
Feature: Eating too much cucumbers may not be good for you
Scenario: Eating a few isn't a problem
Given Alice is hungry
When she eats 3 cucumbers
Then she is full
Implement World trait and describe steps
use std::time::Duration;
use cucumber::{World as _, given, then, when};
use tokio::time::sleep;
#[derive(Debug, Default, cucumber::World)]
struct World {
user: Option<String>,
capacity: usize,
}
#[given(expr = "{word} is hungry")] // Cucumber Expression
async fn someone_is_hungry(w: &mut World, user: String) {
sleep(Duration::from_secs(2)).await;
w.user = Some(user);
}
Add test to Cargo.toml
[[test]]
name = "readme"
harness = false # allows Cucumber to print output instead of libtest
Links • https://crates.io/crates/cucumber • https://docs.rs/cucumber • https://github.com/cucumber-rs/cucumber/blob/v0.22.0/CHANGELOG.md • https://cucumber-rs.github.io/cucumber/current • https://cucumber-rs.github.io/cucumber/main
https://docs.rs/crate/metal https://api.github.com/repos/gfx-rs/metal-rs/releases/271219066
Release info
Release version:
Release description
Code Examples
Minor update: 0.32.0 → 0.33.0
$ DOWNLOADS TREND
$ VERSION HISTORY
$ LINKS
$ INSTALL
cargo add metalOr add to Cargo.toml: metal = "0.33.0"