What do you NOT like about Rust?

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

Our great sponsors
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • Scout APM - Less time debugging, more time building
  • SaaSHub - Software Alternatives and Reviews
  • 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.

  • SonarLint

    Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.

  • 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 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.

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • crates.io

    Source code for crates.io

    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?

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