Scoped packages (like in npm)?

Some standard counterarguments:

  • “This just moves the squatting issue to scopes”
  • “Unscoped packages are privileged over scoped ones”
  • “How do you map scopes onto Rust identifiers”

Some specific benefits:

  • Crates’s global namespace was inspired by npm’s (as the most recently notable package manager)
  • And this is npm’s solution to the perceived problems with a global namespace

Some specific drawbacks:

  • @scope/package is so great for JS because there is nothing special about require('@scope/package') over require('scope').
  • Rust would at least have to require lib = { package = "@scope/package" } or come up with a “mangling” that makes scopes special in Cargo-Rust communication

I’m neutral on @scope versus scope- versus any other proposed namespacing proposal. I still believe namespacing is useful, but doubt how much “author” namespaces will be used for “serious” packages.

5 Likes