$ metal

v0.33.0MAJOR UPDATE

Rust bindings for Metal

Downloads: 9.8M
Recent: 2.1M
Versions: 35
Updated: December 17, 2025

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

Linkshttps://crates.io/crates/cucumberhttps://docs.rs/cucumberhttps://github.com/cucumber-rs/cucumber/blob/v0.22.0/CHANGELOG.mdhttps://cucumber-rs.github.io/cucumber/currenthttps://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

9.0M9.8M

$ VERSION HISTORY

v0.33.0December 17, 2025
v0.32.0March 24, 2025

$ LINKS

$ INSTALL

cargo add metal

Or add to Cargo.toml: metal = "0.33.0"