External Publication
Visit Post

Stable type identifiers: a missing piece for crABI and export

Rust Internals [Unofficial] March 17, 2026
Source

Today one can change the path of a type (e.g. move something from std to core) in a non-breaking manner. This would make it a breaking change.

Not every crate is a crates.io crate. Some are in alternative registries and some are not in registries. And even crates.io crates get vendored, patched, sourced from a repo, etc.

This probably has the same challenges/limitations around lifetimes as TypeId does. There are also details that would need fleshed out around higher-ranked types and dyn types.

There are a number of potential issues around hashing (collisions, change of algorithm) which can be avoided by just talking about paths directly.

Discussion in the ATmosphere

Loading comments...