{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreih72hupzqe5hcssb33pxusmqpmwojjzff5igcwxjwvjxayaeunaba",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mkkevcnrlty2"
},
"path": "/t/pre-rfc-dns-domains-as-package-namespaces/24202?page=2#post_31",
"publishedAt": "2026-04-28T09:20:14.000Z",
"site": "https://internals.rust-lang.org",
"textContent": "jmillikin:\n\n> what you're describing here is something like a reserved prefix\n\nWhat is a namespace if not a reserved prefix. I was primarily referring to why use a domain and not an existing crate. In your Cranelift example `cranelift.dev/simplejit` you used a domain, even though the project already has a \"parent\" crate that could be used, thus becoming `cranelift/simplejit`, without having separate ownership/naming sources like domains.\n\nOn your serde example there already is a main crate `serde`, that can be used as the namespace, possibly with a `serde/unofficial/foo`, thus still having everything bundled under serde.\n\nAnd on your fuse/sane/sleigh example: Still possible. The main downside is that your (arbitrarily chosen) namespace must not conflict crate names (and will mean you can't publish a crate named like your namespace in the future unless it is put under a different namespace).\n\nThe effect is the same, except that each existing crate automatically gets a namespace and there are no problems with domain expiry.\n\nTechnically nothing would prevent us from having both crate names and domain names as namespaces, as long as crate names cannot contain a '.' and you can't use the TLD itself:\n\n\n foo\n example.com/foo\n serde/foo\n",
"title": "[Pre-RFC] DNS domains as package namespaces"
}