{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiemfbz5dpfpiiaf65fdz5u57pstmm3ens23pn4t6c33edz7md26hq",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3migqau5s7rh2"
},
"path": "/t/stable-type-identifiers-a-missing-piece-for-crabi-and-export/24093?page=2#post_24",
"publishedAt": "2026-04-01T11:56:14.000Z",
"site": "https://internals.rust-lang.org",
"textContent": "Ok, so it's more of an issue with the Rust project willing to commit to a precise stability guarantee, rather than need for a specific identifier format.\n\nThe opaque hash is a problem, but it's deeper than the hash itself: crate names are not unique identifiers, even within a single compilation unit. Rust/Cargo supports multiple major versions of the same crate and allows different registries and path dependencies to have the same crate name. To disambiguate that you'd also need to add something like Cargo's pkgid.\n\nBut what I don't understand is why you're proposing nominal typing for the ABI. Wouldn't it be better to identify types by their structure, so that non-ABI-breaking changes don't change the identifier?",
"title": "Stable type identifiers: a missing piece for crABI and export"
}