What do you NOT like about Rust?

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • SonarLint - Clean code begins in your IDE with SonarLint
  • Mergify - Updating dependencies is time-consuming.
  • rfcs

    RFCs for changes to Rust

    Still missing named/default parameters. I know that's a bit of a controversial addition, but the boilerplate from alternative methods (such as the builder pattern) really bothers me. The RFC about adding this is here if anyone is interested. Seems to be generally approved of, but the implementation is difficult.

  • rust

    Empowering everyone to build reliable and efficient software.

    I have mixed feelings about this one. I have wanted a version of HashSet::get_or_insert_owned since I first started playing with Rust around 1.0 and it's more or less stagnant for years, but more often than not I appreciate the care and effort it takes to get something very close to right and avoid too much incidental complication and baggage.

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • docs.rs

    crates.io documentation generator

    As a beginner Rust developer, the lack of tutorials for a lot of things is really frustrating. Very often the response to "how to do X" is "read the docs," but when all there is is what's on docs.rs it can get really overwhelming very quickly.

  • wasmer

    🚀 The leading WebAssembly Runtime supporting WASIX, WASI and Emscripten

    Have you looked into either abi_stable (a crate that handles the repr(C) stuff for you with a focus aimed at making DLLs) or Wasmer (an embeddable WebAssembly runtime that would mean mods compiled for x86 Windows would also work on PowerPC Linux and ARM macOS)?

  • PyO3

    Rust bindings for the Python interpreter

    Have you looked into abi_stable, flapigen, interoptopus, cbindgen, PyO3, or rust-cpython?

  • rust-cpython

    Rust <-> Python bindings

    Have you looked into abi_stable, flapigen, interoptopus, cbindgen, PyO3, or rust-cpython?

  • puffin

    🐦 Friendly little instrumentation profiler for Rust 🦀

    Can recommend puffin. Won't be as feature complete as the others, but it's implemented in Rust and seems to work quite well once it's setup.

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • crates.io

    The Rust package registry

    I also understand that the Rust team doesn't "want to take sides", but IMHO, there should be a curated list of well-supported libraries with a good track record, or some sort of epic filtering function in crates.io (but maybe I've missed it, because I'm adverse to installing dependencies unless I _really_ have to, or an alternative implementation gives much better performance, such as crossbeam vs std channels).

  • propane

    generators

    If you can use nightly, just use https://github.com/withoutboats/propane

  • serenity

    A Rust library for the Discord API. (by serenity-rs)

    Yes, I have one more example that personally affects me. I made discord bots in Python. And the pong example of Serenity was a lot of code. https://github.com/serenity-rs/serenity as compared with discordpy https://discordpy.readthedocs.io/en/stable/quickstart.html

  • urwid

    Console user interface library for Python (official repo)

    As someone coming from Python, I've had more than enough opaque duck-typed errors from urwid and I'd like my error messages to fit on one page.

  • validator

    Simple validation for Rust structs (by Keats)

    If you really want duck-typing, take a look at how the validator crate uses macros to achieve something similar. (Seriously. It was a real head-scratcher the first time I discovered it would accept and use my impls as long as the method names matched.)

  • project-error-handling

    Error handling project group

    without trolling https://github.com/rust-lang/project-error-handling exist and is far from having strong conclusion and anyway I will always favor enum Error anyway however I like the idea to have a opaque box in the enum for "this is a opaque error you can't deal with as a user of my api"

  • goformat

    Alternative to gofmt with configurable formatting style (indentation etc.)

    You'd prefer that people like me follow the road the Go ecosystem did and write goformat as a replacement for gofmt or just continue to hand-format everything?

  • Mergify

    Updating dependencies is time-consuming.. Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts