Things I hate about Rust, redux

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

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • rust

    Empowering everyone to build reliable and efficient software.

  • Error handling is unfortunately a little more idiomatic and less language-specified than it should be, but it's getting better. In a library, you should use thiserror to provide errors that wrap around existing errors / provide errors of your own. In an application, you should use anyhow which lets you use any error type implicitly, thus giving you the semantics you'd want. Yeah, this could be better, but it's getting there.

  • rustig

    A tool to detect code paths leading to Rust's panic handler

  • There's Rustig which does it for panics, though it seems unmaintained and uses inspection of the final binary rather than source code/AST inspection.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • x_do.cr

    Crystal bindings for libxdo (xdotool)

  • Here's an example from some of my own (old) code of using a macro to generate a bunch of boilerplate methods. It's a very simple example, but it demonstrates how readable the macro language is.

  • language-ext

    C# functional language extensions - a base class library for functional programming

  • Option and Result make a lot of sense if you come from a language or toolkit that already does this for you. Java's Optional, Scala's Option, C# LanguageExt, JS Monet, and others are good places to start. Searching Youtube or Google for "maybe monad" might also turn up something useful.

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