{
  "$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"
}