External Publication
Visit Post

[Pre-RFC] DNS domains as package namespaces

Rust Internals [Unofficial] April 28, 2026
Source

jmillikin:

Namespaces are a bit different, the goal is to expand the set of names people can use. Namespaces allow lots of different people to publish crates even if some of those crates are different approaches to solving the same problem.

jmillikin:

My package is an implementation of FUSE, and therefore it is called fuse. If I had forked the FUSE protocol into my own personal variant, then I would publish the library as jmillikin_fuse.

Note that if I had done so, and I had published jmillikin_fuse, then I would not want to prevent someone else from publishing their take on that idea. They should also be able to publish their jmillikin_fuse library if they wanted it to do something different than mine.

I'm not following this argument. If you published jmillikin/fuse with namespaces would you be ok with others not being able to publish their jmillikin/fuse? To me it's exactly the same. If you then argue I could publish my own skifire13/fuse why can't I publish skifire13_fuse right?

The way I see it the main motivation for namespaces is to reserve the namespace for my own (or my organization) packages, while preventing others from creating crates in it.


ps: I didn't see this mentioned earlier but note that you can publish a jmillikin_fuse package containing a library called fuse (which will be name that will be used to import it in Rust code).

Discussion in the ATmosphere

Loading comments...