Hey Rustaceans! Got a question? Ask here (5/2023)!

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

Our great sponsors
  • SonarLint - Clean code begins in your IDE with SonarLint
  • InfluxDB - Access the most powerful time series database as a service
  • SaaSHub - Software Alternatives and Reviews
  • rust

    Empowering everyone to build reliable and efficient software.

    Ah thanks, yup the last comment in https://github.com/rust-lang/rust/issues/20671 is a much more concise version of my issue :)

  • cross

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

    I build on x86, for aarm64/armv7 musl targets, using cross-rs. My issue is, forever and always, tls. Previously I just used openssl = { version = '0.10', features = ["vendored"] } in Cargo.toml.

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

  • tokio-tungstenite

    Tokio binding for Tungstenite, the Lightweight stream-based WebSocket implementation

    I'm using another crate that requires tls, specifically tokio-tungstenite, I'll try your suggestions later today once I get home

  • wabt

    The WebAssembly Binary Toolkit

    I'm trying to get a basic Rust webassembly program, then porting it to C via wasm2c. The example works, but when I use wasm-bindgen and analyze it with wasm2wat, I get an import "env". The issue is that in C (wasm2c) it comes out as struct Z_env_instance_t; and I can't instantiate it (as in Z_env_instance_t env; to pass it's address to Z_wasm_client_bg_instantiate.

  • The code I wrote works correctly https://gitlab.com/Boiethios/moonlander-firmware/-/blob/dev/src/bootload.rs but I wondered how bad it is, that is, how it violates the Rust memory model. You've already answered that part, though, thanks for the answer :)

  • rustfmt

    Format Rust code

    Yes, some cases are not yet supported (https://github.com/rust-lang/rustfmt/issues/4914).

  • Kategory

    Λrrow - Functional companion to Kotlin's Standard Library (by arrow-kt)

    Are there any more-or-less established functional crates in Rust (similar to Kotlin’s Arrow)?

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • slotmap

    Slotmap data structure for Rust

    Dunno about existing implementations, but it looks like it's a feature they'd accept: https://github.com/orlp/slotmap/issues/73

  • cxx

    Safe interop between Rust and C++

    There's a crate with a handy guide for doing just that: https://cxx.rs/

  • serde-aux

    An auxiliary serde library providing helpful functions for serialisation and deserialisation for containers, struct fields and others.

    If you want to additionally parse strings into numbers, take a look at https://github.com/vityafx/serde-aux (or write a custom deserializer, ofc.).

  • kanin

    A microservice framework for AMQP, protobuf and Rust.

    We've built kanin for our use at Issuu. It's working very well for our servers! We are maintaining it, though it fulfills most of our own requirements at the moment. Feel free to post issues/PRs. Kanin only takes care of the server side though.

  • auto-future

    A way to easily build structs that can be turned into futures

    I ended up writing what I called an `AutoFuture`. It takes a `dyn Future`, boxes it, and then polls it to completion. The code is here. It works well for my needs.

  • text_adventure

    Prototype for a text based adventure system.

    some time later.. something like this, and I've added a repo in case I mess around with this in the future.

  • ref-cast

    Safely cast &T to &U where the struct U contains a single field of type T.

    You can add #[repr(transparent)] and then call transmute(), or use https://github.com/dtolnay/ref-cast (which is exactly what it does anyway, providing a safe interface).

  • rust-bindgen

    Automatically generates Rust FFI bindings to C (and some C++) libraries.

    It's quite the different approach, but you could consider using bindgen instead.

  • jlox-rs

    Following along the first (Java) part of https://craftinginterpreters.com/, but with Rust, because reasons.

    I decided to peak at some other implementation of this project and I saw this https://github.com/abesto/jlox-rs/blob/main/src/ast.rs.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

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