# \[Pre-RFC\]: Packages as Namespaces

**URL:** <https://internals.rust-lang.org/t/pre-rfc-packages-as-namespaces/8628>\
**Category:** cargo\
**Created:** [October 19, 2018, 11:32pm UTC](https://internals.rust-lang.org/t/pre-rfc-packages-as-namespaces/8628 "2018-10-19T23:32:31Z")\
**Posts on this page:** 1\
**Showing post:** 27

<div class="post-metadata">

**Author:** ![ag\_dubs](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/ag_dubs/32/3270_2.png) [@ag\_dubs](https://internals.rust-lang.org/u/ag_dubs)\
**Post date:** [October 25, 2018, 5:11pm UTC](https://internals.rust-lang.org/t/pre-rfc-packages-as-namespaces/8628/27 "2018-10-25T17:11:52Z")

</div>

As an FYI, [crates.io](http://crates.io) team member here, I worked for npm for 3 years. I have been and intend to continue sharing the best practices I learned from that team. If you have any questions, feel free to direct them to me.

As for why name spaces were originally introduced, it was to help create a paid product, private packages. Very few people used them, until around 2 years later when we introduced another paid product, organizations. Free and paid organizations are the primary use case that folks use and it’s largely as a result of the increased and more ergonomic permissions controls. [crates.io](http://crates.io) already affords this by letting folks leverage GitHub teams. So strictly from a npm point of view, [crates.io](http://crates.io) does not currently have a motivation for this feature as we don’t need to make money and already give folks the ability to organize permissions via GitHub organizations.

---

_[View the full topic](https://internals.rust-lang.org/t/pre-rfc-packages-as-namespaces/8628)._
