1. 64

  2. 6

    A solid list. I had a couple of other crates come to mind and I grinned at the careful wording in a couple of places, as I’m sure other Rustaceans would. It’s not worth bikeshedding though: you definitely won’t go wrong following this guide.

    Half on-topic, my biggest wish for Rust is that a list rather like this could form the basis of an extended standard library, something akin to a linux distribution where all the common crates and their dependencies come through a trusted intermediary with a release process, so that some random dev can’t get phished and push a patch version of a crate that drops a reverse shell on everybody’s machine via build.rs. It’s a hard problem for a lot of reasons and I don’t know exactly what it could look like… but when I look at the diversity of projects and crates needed for “normal Rust” I just have this lingering uncertainty. The safety of so much code depends on the integrity of rather a lot of independent projects and processes, and you only need to get past one. On the flip side, there are excellent and careful developers behind most/all of these projects, which is how they ended up on this list. So maybe it’s fine?

    1. 3

      I grinned at the careful wording in a couple of places,

      Yeah, fwiw, here’s some non-obvious implications of some crates from my side: https://old.reddit.com/r/rust/comments/yp65kq/crate_list_blessedrs/ivj4kvm/

      To clarify, 100% of crates on the list are best in class, it’s just that best doesn’t imply perfect.

      1. 3

        Yeah I notice a lot of the time for libraries you end up with a split between minimal and maximal solutions, and you also tend to get several decent choices for minimal versions:

        • rand vs oorandom/fastrand/others
        • clap vs argh/pico-args
        • diesel vs ??? (sqlx maybe?)
        • bevy vs ggez/miniquad
        • nalgebra vs glam/vek/others
        • serde vs some others I don’t quite recall

        I honestly kinda like this pattern, and wonder if it might be worth somehow fostering intentionally in these sorts of guides.

        1. 2

          For minimal alternatives to serde, there are miniserde and nanoserde.

    2. 3

      druid: Has better foundations than iced or egui, but the API is quite clunky and poorly documented.

      What makes its foundations better than iced?

      I hope Rust will have a clearer native GUI story in the coming years. We really need a solid alternative to Electron that gives you the freedom and polish browser rendering allows.

      It seems like production apps such as Zed, Warp use homegrown UI frameworks. I would like to see a “blessed” winner in this space.

      1. 1

        Awesome list, bookmarked! Does anyone know of any such lists for other programming languages?