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

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

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

    Future-based Tungstenite for Tokio. 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

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

    SaaSHub 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