# \[Idea\] The Rust Platform Distribution

**URL:** <https://internals.rust-lang.org/t/idea-the-rust-platform-distribution/5553>\
**Category:** tools and infrastructure\
**Created:** [July 15, 2017, 6:53am UTC](https://internals.rust-lang.org/t/idea-the-rust-platform-distribution/5553 "2017-07-15T06:53:33Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![sebasmagri](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/sebasmagri/32/1989_2.png) [@sebasmagri](https://internals.rust-lang.org/u/sebasmagri)\
**Post date:** [July 15, 2017, 6:53am UTC](https://internals.rust-lang.org/t/idea-the-rust-platform-distribution/5553/1 "2017-07-15T06:53:33Z")

</div>

Hi, and sorry if the following notes are a little bit sparse.

I’d like to share an idea of building a _distribution of Rust_, _RPD_ in the following paragraphs, that came to my mind today. This is influenced by what other ecosystems are already doing. Some examples of this include the [Haskell Platform](https://www.haskell.org/platform/) and [several examples for Python](https://wiki.python.org/moin/PythonDistributions).

The _RPD_ could be distributed as a cross platform bundle installer that would give offline access to curated tools and crates. This could include:

- An LTS toolchain depending on the installer architecture/platform.
- UI for Windows/Mac/Linux/Web (Rust Dashboard)
  - Check `rustup` status and update toolchains (probably with a custom LTS channel)
  - Update binaries and tools (ala `cargo install-update`)
  - The Book and Docs
    - Builtin offline documentation browser

- Compiler errors linked to included documentation in the Rust Dashboard (see below): this would require revamping the error messages to include error codes that can be linked easily. This would allow the default toolchain channels to distribute error messages with links to online docs, then the base URL could be customized for the _RPD_ using a custom URL scheme to automatically open the Dasboard’s documentation browser.
- Pinned and possibly precompiled versions of the distribution crates
  - These should be all curated, 1.0 quality level crates (Libz Blitz)

- Cargo
  - With support to use the included crates by default and handle upgrades from the Web and probably some _RPD_ specific subcommands

- RLS and editor plugins
- Clippy
- rustfmt

All the included tools and crates should go through a security audit and offer long term support.

The _RPD_ could provide spins, like Fedora’s, for specific areas: Scientific, Data Science, WebDev, OSDev, GameDev, Embedded.

---

<div class="post-metadata">

**Author:** ![jimmycuadra](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/jimmycuadra/32/576_2.png) [@jimmycuadra](https://internals.rust-lang.org/u/jimmycuadra)\
**Post date:** [July 15, 2017, 8:40am UTC](https://internals.rust-lang.org/t/idea-the-rust-platform-distribution/5553/2 "2017-07-15T08:40:31Z")

</div>

Sounds like a combination of [The Rust Platform](https://internals.rust-lang.org/t/proposal-the-rust-platform/3745) and rustup (with expected future components like RLS, clippy, and rustfmt).

---

<div class="post-metadata">

**Author:** ![sebasmagri](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/sebasmagri/32/1989_2.png) [@sebasmagri](https://internals.rust-lang.org/u/sebasmagri)\
**Post date:** [July 16, 2017, 3:40pm UTC](https://internals.rust-lang.org/t/idea-the-rust-platform-distribution/5553/3 "2017-07-16T15:40:57Z")

</div>

@jimmycuadra thanks! I had looked for something similar without success… Yes, it’s pretty much in the same direction.

---

<div class="post-metadata">

**Author:** ![steveklabnik](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/steveklabnik/32/4524_2.png) [@steveklabnik](https://internals.rust-lang.org/u/steveklabnik)\
**Post date:** [July 17, 2017, 4:37pm UTC](https://internals.rust-lang.org/t/idea-the-rust-platform-distribution/5553/4 "2017-07-17T16:37:41Z")

</div>

Sadly (IMO), this was very much _not_ well received, and so we didn’t go in that direction.

---

<div class="post-metadata">

**Author:** ![sebasmagri](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/sebasmagri/32/1989_2.png) [@sebasmagri](https://internals.rust-lang.org/u/sebasmagri)\
**Post date:** [July 17, 2017, 5:13pm UTC](https://internals.rust-lang.org/t/idea-the-rust-platform-distribution/5553/5 "2017-07-17T17:13:03Z")

</div>

Right, I went thru @aturon’s thread and there are a bunch of good points there on why not to do it. Actually I believe that’s a nice opportunity to start implementing some of the ideas in the current tooling that might add value to the ecosystem without needing to implement the whole idea.

For example, I believe that having a toolchain and a set of crates with LTS support and stable tooling could make it easier for Linux/BSD distributions to ship and support Rust in their products…

I remember a discussion about ABI backward compatibility in the GNOME+Rust Hackfest in Mexico City, and I might be wrong but probably having something like this could be a good option for GNOME and distributions to work together with Rust’s upstream on a stable base for their releases’ lifetime.

I understand this probably wont happen without some desirable features in stable, but I still believe there are bits that could be implemented. For example I miss better offline support for the tooling on almost every single meetup or workshop I do… And I believe this improvement could also make Rust more attractive for the enterprise.

---

<div class="post-metadata">

**Author:** ![jntrnr](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/jntrnr/32/3046_2.png) [@jntrnr](https://internals.rust-lang.org/u/jntrnr)\
**Post date:** [July 17, 2017, 8:37pm UTC](https://internals.rust-lang.org/t/idea-the-rust-platform-distribution/5553/6 "2017-07-17T20:37:07Z")

</div>

@steveklabnik - iirc, some of the reason it wasn’t as well received may have been around the framing we used.

Looking through the feedback users gave us in the survey, they’re definitely a _strong_ desire for something along these lines, but perhaps it’ll take a few tries to strike the right balance.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/system/32/14092_2.png) [@system](https://internals.rust-lang.org/u/system)\
**Post date:** [March 25, 2019, 8:28am UTC](https://internals.rust-lang.org/t/idea-the-rust-platform-distribution/5553/7 "2019-03-25T08:28:46Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
