public_items 0.0.1

List public items (public API) of library crates. Enables diffing public API between releases.
Documentation

public_items

List public items (the public API) of a library crate by analyzing rustdoc JSON of the crate.

Usage

# Generate rustdoc JSON for your Rust library
RUSTDOCFLAGS='-Z unstable-options --output-format json' cargo +nightly doc --no-deps

# List all public items of the Rust library
cargo install public_items
public_items ./target/doc/your_library.json

Target audience

Maintainers of Rust libraries that want to keep track of changes to their public API.

Limitations

Currently:

  • Only items from the crate itself are considered (so e.g. fn clone() will not be included in the output list, because the Clone trait is defined outside of the crate.)
  • The type of items are not shown. So a struct field and and struct method is listed as Struct::field and Struct::method. And tuple structs will just be represented with Struct::0, Struct::1, etc. Since Rust does not support method overloading, this is not that big of an issue in practice.