I'm considering Rust, Go, or Julia for my next language and I'd like to hear your thoughts on these

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

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

    Julia bindings for Rust

  • Julia tries hard to make it easy to call packages from older languages. Actually, since Rust can compile dynamic libraries using the C ABI, you can pretty much call Rust from Julia and viceversa with almost no boilerplate*. Check out jlrs and the manual section on calling C.

  • AreWeRustYet

    Awesome list of "Are We *thing* Yet" for Rust

  • For more info about how stable things are: https://github.com/UgurcanAkkok/AreWeRustYet

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

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

  • With the tokio crate, you have all the tools you need to create concurrent programs that use futures (abstract threads) instead of OS threads, which is more energy efficient and faster for I/O-intensive programs (programs that are computation intensive should still rely on OS threads). For web specifically, you have Actix which builds upon tokio and allows you to create web servers extremely easily.

  • actix-web

    Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

  • With the tokio crate, you have all the tools you need to create concurrent programs that use futures (abstract threads) instead of OS threads, which is more energy efficient and faster for I/O-intensive programs (programs that are computation intensive should still rely on OS threads). For web specifically, you have Actix which builds upon tokio and allows you to create web servers extremely easily.

  • RCall.jl

    Call R from Julia

  • If you need to bindings to your existing R packages then Julia is the way. Check out RCall.jl

  • enso

    Hybrid visual and textual functional programming.

  • Enso the language is mostly scala, Enso the IDE, which is very much an integral part of the project, is like 90% Rust.

  • ide

    Discontinued Enso – a visual and textual functional programming language.

  • Enso the language is mostly scala, Enso the IDE, which is very much an integral part of the project, is like 90% Rust.

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

    Safe interop between Rust and C++

  • You'll probably want to familiarize yourself with the cxx library, which reached 1.0 and offers certain guarantees on api and stability. I believe Facebook is using it (and funded its work). So, it's been well-vetted.

  • ModelingToolkit.jl

    An acausal modeling framework for automatically parallelized scientific machine learning (SciML) in Julia. A computer algebra system for integrated symbolics for physics-informed machine learning and automated transformations of differential equations

  • Julia has great support for modeling, have a look at ModelingToolkit.jl. From the README:

  • DaemonMode.jl

    Client-Daemon workflow to run faster scripts in Julia

  • Package load times were cut by roughly a factor of two, in my experience, but that doesn't bring the initialization overhead down to the point where it's usable as a standalone microservice. Your best options at this point are https://github.com/dmolina/DaemonMode.jl, which keeps a Julia process running in the background using a client/server model, or https://github.com/JuliaLang/PackageCompiler.jl, which allows for ~zero-overhead package loading (at the cost of some up-front complexity).

  • PackageCompiler.jl

    Compile your Julia Package

  • Package load times were cut by roughly a factor of two, in my experience, but that doesn't bring the initialization overhead down to the point where it's usable as a standalone microservice. Your best options at this point are https://github.com/dmolina/DaemonMode.jl, which keeps a Julia process running in the background using a client/server model, or https://github.com/JuliaLang/PackageCompiler.jl, which allows for ~zero-overhead package loading (at the cost of some up-front complexity).

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