ratatui/instability

Rust API stability attributes for the rest of us. Fork of the Stability crate

Rust

24

54 commits

updated Sep 22, 2026

See the code

README

Instability

Rust API stability attributes for the rest of us.

Crate Badge Build Badge Docs Badge License Badge MSRV Badge

Overview

This crate provides attribute macros for specifying API stability of public API items of a crate. It is a fork of the Stability original created by Stephen M. Coakley (@sagebind).

Usage

Add the instability crate to your Cargo.toml file:

cargo add instability

Then, use the #[instability::stable] and #[instability::unstable] attributes to specify the stability of your API items:

/// This function does something really risky!
#[instability::unstable(feature = "risky-function")]
pub fn risky_function() {
    println!("This function is unstable!");
}

/// This function is safe to use!
#[instability::stable(since = "1.0.0")]
pub fn stable_function() {
    println!("This function is stable!");
}

A feature flag prefixed with "unstable-" will be created that can be used to enable unstable items. The macro will append an extra documentation comment that describes the stability of the item. The visibility of the item will be changed to pub(crate) when the feature is not enabled (or when the attribute is on an impl block, the entire block will be removed).

Check out the Docs for detailed usage. See instability-example for a complete example.

MSRV

The minimum supported Rust version (MSRV) is 1.88.0.

License

This project's source code and documentation are licensed under the MIT License.

ratatui/instability

Rust API stability attributes for the rest of us. Fork of the Stability crate

Rust

24

54 commits

updated Sep 22, 2026

See the code

README

Instability

Rust API stability attributes for the rest of us.

Crate Badge Build Badge Docs Badge License Badge MSRV Badge

Overview

This crate provides attribute macros for specifying API stability of public API items of a crate. It is a fork of the Stability original created by Stephen M. Coakley (@sagebind).

Usage

Add the instability crate to your Cargo.toml file:

cargo add instability

Then, use the #[instability::stable] and #[instability::unstable] attributes to specify the stability of your API items:

/// This function does something really risky!
#[instability::unstable(feature = "risky-function")]
pub fn risky_function() {
    println!("This function is unstable!");
}

/// This function is safe to use!
#[instability::stable(since = "1.0.0")]
pub fn stable_function() {
    println!("This function is stable!");
}

A feature flag prefixed with "unstable-" will be created that can be used to enable unstable items. The macro will append an extra documentation comment that describes the stability of the item. The visibility of the item will be changed to pub(crate) when the feature is not enabled (or when the attribute is on an impl block, the entire block will be removed).

Check out the Docs for detailed usage. See instability-example for a complete example.

MSRV

The minimum supported Rust version (MSRV) is 1.88.0.

License

This project's source code and documentation are licensed under the MIT License.

Project health

crates.io

Latest release

0.3.14 · Sep 22, 2026

Releases this year

5

Significant stargazers

Scott Mabin

408 followers · starred Oct 2024

Henry Chu

193 followers · starred Jun 2025

૮༼⚆︿⚆༽つ

121 followers · starred Apr 2026

einfachIrgendwer0815

3 followers · starred Jan 2025