Our great sponsors
-
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.
-
tokio
A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
-
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.
-
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 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.
For more info about how stable things are: https://github.com/UgurcanAkkok/AreWeRustYet
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.
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.
If you need to bindings to your existing R packages then Julia is the way. Check out RCall.jl
Enso the language is mostly scala, Enso the IDE, which is very much an integral part of the project, is like 90% Rust.
Enso the language is mostly scala, Enso the IDE, which is very much an integral part of the project, is like 90% Rust.
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.
Julia has great support for modeling, have a look at ModelingToolkit.jl. From the README:
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).
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).