Strengths and applications of Rust

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

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

    An HTTP library for Rust (by hyperium)

  • Stuff where you need strong compile-time guarantees without the nuclear option that is Haskell (I'm particularly fond of the typestate pattern which allows you to rope the compiler into checking the correct use of any algorithm that can be represented as a finite state machine... Hyper uses it to turn "tried to set an HTTP header after the body began streaming" into a compile-time error.)

  • rust-cpython

    Rust <-> Python bindings

  • Personally, I'm not willing to compromise on my GUI look and feel, so I use PyQt or PySide to write my GUIs against the QWidget API (I'm a KDE user and Python is the only language with mature memory-safe bindings to Qt) and, if the project can be structured with a frontend-backend separation, I use rust-cpython or PyO3 to write a backend in Rust that the Python frontend can import. Sort of using Python/Rust as a QWidget analogue to the QML/C++ architecture promoted for Qt Quick. (Which I don't use because it's still too incomplete on Kubuntu 20.04 LTS.)

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • PyO3

    Rust bindings for the Python interpreter

  • Personally, I'm not willing to compromise on my GUI look and feel, so I use PyQt or PySide to write my GUIs against the QWidget API (I'm a KDE user and Python is the only language with mature memory-safe bindings to Qt) and, if the project can be structured with a frontend-backend separation, I use rust-cpython or PyO3 to write a backend in Rust that the Python frontend can import. Sort of using Python/Rust as a QWidget analogue to the QML/C++ architecture promoted for Qt Quick. (Which I don't use because it's still too incomplete on Kubuntu 20.04 LTS.)

  • gtk-rs

    Discontinued Rust bindings for GTK 3

  • gtk-rs is probably the most mature binding to a portable GUI toolkit, thanks to their GObject Introspection interface definition system, though GTK+ is known for being a pain to get set up on Windows and lacking on macOS.

  • cross

    “Zero setup” cross compilation and “cross testing” of Rust crates

  • Anything where you might use Go for its ability to create easy-to-deploy binaries, but you want one of Rust's other advantages too. (Rust isn't quite as good at cross-compiling as Go yet, but they're working on it and you can use cross in the mean time.)

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