Hey Rustaceans! Got a question? Ask here! (23/2022)!

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

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SaaSHub - Software Alternatives and Reviews
  • tokio

    A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...

    Another gotcha is when crates modify their types depending on which features you enable that crate. If you use that type in your struct, then suddenly that feature of that dependency becomes part of your public API. See this PR for an example of that in the wild.

  • rust

    Empowering everyone to build reliable and efficient software.

    No, they're compiled in via this file: https://github.com/rust-lang/rust/blob/master/compiler/rustc_error_codes/src/error_codes.rs

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • makeit

    Zero-overhead type-safe builder pattern `derive` macro for your Rust structs

    The best alternative I can think of is a typestate pattern similar to the one in https://github.com/estebank/makeit where instead of using marker parameter types to indicate that a field hasn't been set you use those markers to indicate that a field should be set to some default type.

  • I am adapting this example for my scenario: https://github.com/Zondax/ledger-filecoin-rs/blob/master/src/lib.rs I have the following 'type hierarchy', I am not sure how to approach this best in Rust.

  • metrics

    Diesel, which is a database client framework that operates on blocking I/O, has benchmarks that run periodically to compare it to other implementations, mostly those based on async I/O: https://github.com/diesel-rs/metrics

  • too-many-lists

    Learn Rust by writing Entirely Too Many linked lists

    Check out Learn Rust With Entirely Too Many Linked Lists for possibly the best explanation of this. I'm not sure but I think this is a solvable problem that will become easier in Rust in the future. For now linked lists are a bit more complicated in Rust, though.

  • docs.rs

    crates.io documentation generator

    The reason is simply that they're laid out as books. They're not simply "documentation" in the same way that the generated docs.rs references are, they're tutorials divided into chapters, etc.

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • book

    The Rust Programming Language

    It was started by what's known as "The Book", ie. The Rust Programming Language.

  • mdBook

    Create book from markdown files. Like Gitbook but implemented in Rust

    Not sure exactly what you're asking, but they're writing them as actual books in Markdown and then they use https://github.com/rust-lang/mdBook to build the websites.

  • const-eval

    home for proposals in and around compile-time function evaluation

    This is due to const-promotion. The compiler recognizes the array expression can be a constant and so treats it like one.

  • winit

    Window handling library in pure Rust

    I think the most minimal you can get is https://github.com/rust-windowing/winit.

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