Our great sponsors
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
You can achieve amazing concurrency and performance using async Rust, but working with async Rust is not as simple as writing regular Rust code and it just doesn't provide you the same features as Elixir Processes do.
Async version of the Rust standard library
The processes spawned by Lunatic are actually taking full advantage of the power provided by async Rust. They are scheduled on top of a work stealing async executor, the same used by async-std. Calling Process::sleep(100) will actually invoke smol's at function.
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.
Lucet, the Sandboxing WebAssembly Compiler.
I also want to use this opportunity to say a big thank you to the teams working on Rust, Wasmer, Wasmtime, Lucet and waSCC. It would be impossible to build Lunatic without all the hard work put into this projects.
The Lunatic VM [Moved to: https://github.com/lunatic-solutions/lunatic] (by lunatic-lang)
This is just a teaser of the capabilities that Lunatic will provide. There are many more features coming. Once you have this foundation, a new world of possibilities opens up. Some of the features I'm excited about:
a Rust library implementing safe, lightweight context switches, without relying on kernel services
As we saw earlier, scheduling threads is a hard task for the operating system. To replace one thread that's being executed with another one, a lot of work needs to be done (including saving all the registers and some thread state). However, switching between Lunatic Processes does only the minimal amount of work possible. With an idea pioneered by the libfringe library and using some asm! macro magic, Lunatic lets the Rust compiler figure out the minimal number of registers to be preserved during context switches. This makes scheduling Lunatic processes zero-cost. On my machine usually 1ns, equivalent to a function call.
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.
Rust async is colored, and that’s not a big deal
4 projects | reddit.com/r/rust | 14 Mar 2021
Considering moving from Rocket to Actix Web
4 projects | reddit.com/r/rust | 25 Mar 2023
What is the most popular and best-supported Rust web framework?
2 projects | reddit.com/r/learnrust | 25 Feb 2023
In which circumstances is C++ better than Rust?
11 projects | reddit.com/r/rust | 18 Feb 2023
Architecture with rust
5 projects | reddit.com/r/learnrust | 9 Feb 2023