theBeamBook
submillisecond
theBeamBook | submillisecond | |
---|---|---|
7 | 14 | |
3,044 | 898 | |
- | 0.3% | |
5.8 | 4.2 | |
about 1 month ago | about 2 months ago | |
Erlang | Rust | |
Creative Commons Attribution 4.0 | MIT License |
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
submillisecond
-
What would you rewrite in Rust?
I believe that https://github.com/lunatic-solutions/submillisecond wants to be that.
-
From Erlang to Rust and Lunatic
Lunatic is exciting, I'm keeping an eye especially on the submillisecond web framework that targets wasm: https://github.com/lunatic-solutions/submillisecond
-
Lunatic is an Erlang-inspired runtime for WebAssembly
- https://github.com/lunatic-solutions/submillisecond/tree/mai...
-
Is Rust Ready for the Web Yet?
Lunatic runtime for Rust to avoid the async parts might become quite nice in the future: https://github.com/lunatic-solutions/submillisecond
Not sure what it might take for someone to write database connectors for it but it does look promising.
- Submillisecond: A lunatic web framework for the Rust language
-
Htmx, WebAssembly, Rust, ServiceWorker Proof of Concept
What a coincidence, I was just discussing on discord a similar approach for our Rust web framework submillisecond[0].
Submillisecond uses lunatic to run Rust code compiled to WebAssembly on the backend. We are working on a LiveView-like library now. And one thing I would love to give developers for free is an offline-first experience. You write everything in Rust, compile it to WebAssembly, run it as a regular backend on lunatic, but also allow for moving the whole server into the browser for a offline experience. If SQLite is used for the DB, it could also potentially run in the browser.
This doesn't need to move the whole app into the browser, but could do so just for more latency sensitive workloads that don't fit LiveView well. Like form validation on every keypress, etc.
[0]: https://github.com/lunatic-solutions/submillisecond
- Submillisecond Web Framework
- A lunatic web framework for the Rust language
-
Lunatic: Erlang-Inspired Runtime for WebAssembly
Web socket support was added a few days ago[0], but it's still not part of a release. I will probably push out alpha1 tomorrow including it and a few other changes.
[0]: https://github.com/lunatic-solutions/submillisecond/pull/78
What are some alternatives?
chat - A telnet chat server
yew-beyond-hello-world - yew rust tutorial
WeightTracker - Back end for saving data for weight tracker.
wasm-service - HTMX, WebAssembly, Rust, ServiceWorkers
Soccer - Tracker for players play time
swup - Versatile and extensible page transition library for server-rendered websites 🎉
lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly
vugu - Vugu: A modern UI library for Go+WebAssembly (experimental)
example-projects - Featured Dioxus projects on how to build clean user interfaces in Rust
trealla - A compact, efficient Prolog interpreter written in plain-old C.
htmf - A minimalist partial html swapping library similar to HTMX and other libraries which create an MPA app and enhances it with a focus on HTML forms.