theBeamBook
lunatic
theBeamBook | lunatic | |
---|---|---|
7 | 86 | |
3,044 | 4,533 | |
- | 0.4% | |
5.8 | 5.7 | |
about 1 month ago | about 2 months ago | |
Erlang | Rust | |
Creative Commons Attribution 4.0 | 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.
theBeamBook
- Ask HN: Programming Courses for Experienced Coders?
-
Erlang/OTP: Garbage Collector
It's my understanding the state of the art in observing JVM-based applications is a combination of using thread dumps, gc logs, thread activity visualizations. Thread dumps give us a snapshot of the the name of the thread, its current running state (waiting, blocked, etc), and the stacktrace of the work its currently doing. GC logs give you a record of when and how much garbage was collected and Thread activity visualizations show you the timeline of thread moving between different running states.
The BEAM gives you the ability to see the bottlenecks in your system, via the REPL (in real time!)
It has world-class introspection built in that gives you the power to observe and manipulate your running application through a REPL.
The BEAM has hundreds of features like this, because the BEAM is more of an OS than and VM.
I get it, you're a JVM expert, but the BEAM is more than a check list of optimizations that on paper the JVM can do.
I strongly suggest, before the next time you comment on an BEAM VM vs.JVM debate, please consider watching https://www.youtube.com/watch?v=JvBT4XBdoUE, "The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019"
and reading https://github.com/happi/theBeamBook " an attempt to document the internals of the Erlang runtime system and the Erlang virtual machine known as the BEAM."
Best of luck!
-
Lunatic is an Erlang-inspired runtime for WebAssembly
it does. values are immutable in the BEAM, not at language level.
The impact of bugs is minimized by compartmentalization. This is done from the lowest level where each data structure is separate and immutable [1]
But you can simulate mutability with stateful processes.
Directly from Joe Armstrong: https://joearms.github.io/published/2013-11-21-My-favorite-e...
[1] https://github.com/happi/theBeamBook/blob/3971e8e2d09e367670...
-
Log 2022-10-19
theBeamBook repo
-
Will project loom make java concurrency comparable to erlang's?
On a side-note, if you're really interested in grokking the BEAM itself, https://github.com/happi/theBeamBook is a very good resource that delves deeper into the internal working of BEAM. Regardless of whether you use it, it's a fun read!
-
How are processes scheduled
Check the https://github.com/happi/theBeamBook/blob/master/chapters/scheduling.asciidoc
-
What is your opinion on Ada? Have you used it for embedded development? When did you use it?
Did you find this? As far as I know, it is the best resource: https://github.com/happi/theBeamBook
lunatic
-
Spinkube: Running WASM in Kubernetes
This reminds me of Lunatic [1], an Erlang-inspired runtime for WebAssembly. Unfortunately it seems like development stalled some months ago.
[1] https://lunatic.solutions/
-
Spin 2.0 – open-source tool for building and running WASM apps
you can check out https://github.com/lunatic-solutions/lunatic for that
-
Flawless – Durable execution engine for Rust
Very cool, and the approach demonstrated might be of interest to a similar problem we have in Ambient (our WASM game runtime that has competing processes that may need to retry interactions.)
That being said - what’s the relation to Lunatic [0]? Are you still working on Lunatic? Is this a side project? Or is it something completely separate?
[0]: https://lunatic.solutions/
-
Async Rust Is A Bad Language
Curious too. I follow Lunatic [0] as a candidate for future use, and also wasmCloud [1].
[0] https://lunatic.solutions/
[1] https://wasmcloud.com
- Write Elixir NIFs in Rust
- A WASI VM?
- how can I add dynamic loading to do "plugins" for my Rust app?
-
Wasix, the Superset of WASI Supporting Threads, Processes and Sockets
Check out Lunatic https://lunatic.solutions/
-
Elixir and Rust is a good mix
There's a couple of Rust libs and frameworks inspired on Erlang in 'best of both worlds' attempts, such as https://lunatic.solutions
I found others like Lunatic before, but cannot remember right now.
-
Anything close beam/otp for other languages?
There is a really good initiative called Lunatic : https://lunatic.solutions/
What are some alternatives?
chat - A telnet chat server
spin - Spin is the open source developer tool for building and running serverless applications powered by WebAssembly.
hyperscan - High-performance regular expression matching library
actix - Actor framework for Rust.
wit-bindgen - A language binding generator for WebAssembly interface types
wasmCloud - wasmCloud allows for simple, secure, distributed application development using WebAssembly components and capability providers.
bastion - Highly-available Distributed Fault-tolerant Runtime
tui-rs - Build terminal user interfaces and dashboards using Rust
fengari - 🌙 φεγγάρι - The Lua VM written in JS ES6 for Node and the browser
Elixir - Elixir is a dynamic, functional language for building scalable and maintainable applications
lumen - An alternative BEAM implementation, designed for WebAssembly
async-wormhole