chat
lumen
Our great sponsors
chat | lumen | |
---|---|---|
12 | 28 | |
101 | 3,561 | |
0.0% | 0.6% | |
2.5 | 5.4 | |
8 months ago | 5 months ago | |
Rust | Rust | |
- | 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.
chat
- Lunatic is an Erlang-inspired runtime for WebAssembly
-
Charm – tools to make the command line glamorous
TUIs over ssh/telnet can be a lot of fun. Especially in cases where multiple people can interact with each other on the server. It simplifies the programming model as you only have one state on the backend that you render to multiple connections. Syncing up everyone becomes trivial. You can also use some React concepts, like rendering a virtual TUI and sending just the right set of minimal escape sequences back to the user to bring their display up to date.
A few months ago I implemented a telnet chat server[0] for fun and it was surprisingly easy to do so. Even by using a wasm vm that I was still working on at the same time.
-
Launch HN: Lunatic (YC W21) – An Erlang Inspired WebAssembly Platform
We are investing a lot of effort into making Lunatic feel native to the particular language and ecosystem. If you look at the Rust chat server we built in Lunatic (https://github.com/lunatic-solutions/chat), it fully integrates with cargo. You just run your typical “cargo run” command, it will compile the app to wasm and use lunatic to run it. If you want to run your test, you can just do “cargo test”.
wasm-bindgen is necessary only because it’s really hard right now to merge the wasm world and the JS one in the browser. We have the advantage here of staying out of the browser.
-
How I built a telnet chat server in 2021 with WebAssembly
It took me around a week to build it with Rust + Lunatic and you can check out the code here. If you would like to try it out you can connect to it with:
-
The Stakker actor runtime: Beyond "Go++"
Recently I implemented a command line chat server in Rust using an actor framework. I model each TCP connection as an actor.
-
telnet lunatic.chat – A chat server for the terminal
The server is open source and written in Rust. The Rust code is then compiled to WebAssembly and runs on top of Lunatic. Each connection runs in a separate (lightweight) process, has it's own state and sends just a diff of esc-sequences back to the terminal to bring it up to date with the current render buffer. Everything is deployed to an ARM Linux box.
-
Telnet lunatic.chat; A public command line chat server
[1]: https://github.com/lunatic-solutions/chat
lumen
-
Firefly – A new compiler and runtime for BEAM languages
See the about section: https://github.com/GetFirefly/firefly#about-firefly
> The primary motivator for Firefly's development was the ability to compile Elixir applications that could target WebAssembly, enabling use of Elixir as a language for frontend development. It is also possible to use Firefly to target other platforms as well, by producing self-contained executables on platforms such as x86.
There are details on this also: https://github.com/GetFirefly/firefly#runtime
Generally it should be assumed that actors and their concurrency model is fully supported as that is a part of the core semantics for BEAM languages.
- Elixir – Phoenix LiveView Native
-
Is there a way to create client-side interactivity like Vue or React with only Elixir?
Probably not a practical solution for what you are building now, but it's worth pointing out Lumen, an Erlang VM implementation that compiles to WebAssembly, and could one day enable Elixir on the frontend.
-
You had a head start, Gopher, but you can't outrun this crab.
Another vector could be some tooling that makes it easy to run Go programs compiled to Wasm run inside of Wasmtime environment hosted in Rust. If we run the go tooling in the same system, one could point this tool at a Go repo and be running that Go in a matter of milliseconds. A fun feature would be running channels across separate Wasm envs. Or maybe use Lumen.
-
If you were in charge of a startup tech stack, how would you use elixir to actually scale and make every work seamlessly?
Wish the Elixir WASM project -- Lumen -- were active. It seems like nothing much is happening on it.
-
Lisp in Space
The BEAM (runtime?) is written in C. There is also an effort to rewrite it in Rust (https://github.com/lumen/lumen). Some functions are built into the VM but most of the supporting 'standard library' (OTP / Open Telecom Platform) is written in Erlang. The (main) compiler is written in C. So it's all C or Erlang afaik.
It is ported to every major flavour of OS.
I don't know what 'back end' means in this context.
-
Introspection in Erlang/BEAM-inspired Async-Rust-Executors?
There are attempts to implement an Erlang/BEAM-inspired reactor/runtime/executor/ecosystem for Rust's Async, in particular Bastion. (There are also Lumen, Lunatic and Async-Backplane/Async-Supervisor.)
-
WebAssembly: The New Kubernetes?
If I recall correctly, Saša Jurić mentioned in an interview that he envisions the BEAM being used as an OS in the future, where you can run your database, web server and other services under one VM.
While I don't personally have much use for it (at the moment), I'm curious about how this would look like with Lumen [0] where you can run your whole web stack with a single binary and being internally supervised by the BEAM.
Lumen's development has been slow but I remember seeing a tweet from a team member stating that development is slowly ramping back up (not a criticism in any way, just providing some context).
What are some alternatives?
wasmex - Execute WebAssembly from Elixir
lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly
gleam - ⭐️ A friendly language for building type-safe, scalable systems!
purerl - Erlang backend for the PureScript compiler
Gradualizer - A Gradual type system for Erlang
lumen - A private Lumina server for IDA Pro
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
bastion - Highly-available Distributed Fault-tolerant Runtime
purescript - A strongly-typed language that compiles to JavaScript
aesophia - Stand alone compiler for the Sophia smart contract language
lam - :rocket: a lightweight, universal actor-model vm for writing scalable and reliable applications that run natively and on WebAssembly
meetings - WebAssembly meetings (VC or in-person), agendas, and notes