uppercut
gleam
Our great sponsors
uppercut | gleam | |
---|---|---|
2 | 81 | |
9 | 5,270 | |
- | 1.8% | |
0.0 | 0.0 | |
6 months ago | 7 days ago | |
Rust | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
uppercut
-
There are a *lot* of actor framework projects on Cargo.
One more Actor Model implementation for the list: https://github.com/sergey-melnychuk/uppercut
-
Side project: Raft distributed consensus algorithm implementation & CLI visualization in Rust
PAXOS is even simpler that Raft IMO, when distilled to message-specific state updates. This is my homegrown PAXOS impl in Rust based on also homegrown Actor Model impl in 370 LoC: https://github.com/sergey-melnychuk/uppercut/blob/develop/examples/paxos.rs
gleam
-
Elixir for Cynical Curmudgeons
If you're a fan of the ecosystem, but not of dynamic types, there are statically typed languages on BEAM, eg Gleam (https://gleam.run/)
-
Async rust – are we doing it all wrong?
Keep an eye on gleam lang if you’re not already. It’s a language with an ML inspired type system (like rust) that compiles to erlang. It is likely too nascent to be used in production (in terms of tooling, ecosystem, stability, etc).
- I hereby officially announce the Elixir type system effort is into development
-
Elixir and Rust is a good mix
As it usually goes in programming, "it depends on your objectives", there are things that are easier accomplished with the ErlangVM than Rust. Also, if you want a language that uses the ErlangVM and has static types, maybe you should take a look at Glean[1].
In my case I prefer to work with Elixir because of the community, I find way easier to work professionally with Elixir than many other languages, as mostly projects follows the same good practices, use the same tools and have good documentation.
[1] - https://gleam.run/
> I used to use Elixir, but the lack of static types got to me (especially since I prefer the type-driven development methodology).
You might be interested in Gleam[1].
-
Virtual Threads Arrive in JDK 21, Ushering a New Era of Concurrency
https://gleam.run is a statically typed language on the BEAM
-
What library or tool is causing you the most pain right now?
Gleam is a BEAM language that's statically typed.
-
Would you still choose Elixir/Phoenix/LiveView if scaling and performance weren’t an issue to solve for?
Dynamic typing does have its issues but is fairly manageable particularly with pattern matching. It has its tradeoffs. If you prefer static typing you could take a look at Gleam.
-
Phoenix 1.7.0 Released: Built-In Tailwind, Verified Routes, LiveView Streams
I find that a large Elixir codebase is easier to work with than a larger Ruby or JavaScript codebase, but it still has the same difficulties to some degree.
If you're a typing fan as I am, and you are interested in the BEAM then you may want to check out [Gleam, a sibling language of Elixir](https://github.com/gleam-lang/gleam/) which has an Elm/OCaml/F# style static type system. It provides many of the strengths of Elixir but with that statically typed programming style which you may prefer.
(disclosure: I'm the lead dev!)
-
But for how long?
Gleam might be the language for you then
What are some alternatives?
are-we-fast-yet - Are We Fast Yet? Comparing Language Implementations with Objects, Closures, and Arrays
web3.js - Ethereum JavaScript API
Rustler - Safe Rust bridge for creating Erlang NIF functions
hamler - Haskell-style functional programming language running on Erlang VM.
ponyc - Pony is an open-source, actor-model, capabilities-secure, high performance programming language
nx - Multi-dimensional arrays (tensors) and numerical definitions for Elixir
otp - 📫 Fault tolerant multicore programs with actors
lumen - An alternative BEAM implementation, designed for WebAssembly
haskell-language-server - Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.
mongo_orm - Mongo ORM: A simple ORM for using MongoDB with the crystal programming language, designed for use with Amber. Based loosely on Granite ORM. Supports Rails-esque models, associations and embedded documents.
Lumen - The Laravel Lumen Framework.
pest - The Elegant Parser