embly VS chat

Compare embly vs chat and see what are their differences.

embly

Attempt at building an opinionated webassembly runtime for web services (by embly)

chat

A telnet chat server (by lunatic-solutions)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
embly chat
1 12
100 102
- 1.0%
0.0 2.5
about 3 years ago 8 months ago
Rust Rust
- -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

embly

Posts with mentions or reviews of embly. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-03-06.
  • Launch HN: Lunatic (YC W21) – An Erlang Inspired WebAssembly Platform
    5 projects | news.ycombinator.com | 6 Mar 2021
    Hey, I tried to build something like this too: https://github.com/embly/embly

    My takeaway after building that is that the build tooling is the major pain point. If you're trying to onboard someone onto this platform from their favorite language the hard part is getting from code to the .wasm file. wasm-bindgen (as an example) has put so much effort into build tooling, I wonder if that's a necessary path for success here.

    It's also great that WASI exists now, if I had to do embly again I'd just use wasi and then implement all of my "platform" features as filesystem features, not syscalls. If your API interface is the filesystem then you could provide interoperability between environments. Let's say you want to include a key-value store in the wasi runtime, you just make the keys files and the values file contents. Then you could so something like ship a FUSE filesystem to interact with the filesystem in the same way from a traditional VM or on a personal computer. I got really bogged down in custom syscalls and this path seems potentially more elegant.

    Have you also thought about live process migration? I got really excited about this from a technical standpoint. Since you completely control the runtime you could set up a clustered wasm solution that moves long running processes from VM to VM by sending their live memory state to another machine. Not sure if that's actually useful, but cool that it's not bogged down by the usual complexities of doing the same in a full OS environment.

    Anyway, so glad to see that someone is taking this idea on. Please make a cloud platform and let me pay for it. Also happy to chat more if any of this is useful, I've joined your discord as "max".

chat

Posts with mentions or reviews of chat. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-11-30.
  • Lunatic is an Erlang-inspired runtime for WebAssembly
    12 projects | news.ycombinator.com | 30 Nov 2022
  • Charm – tools to make the command line glamorous
    18 projects | news.ycombinator.com | 23 Jan 2022
    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.

    [0]: https://github.com/lunatic-solutions/chat

  • Launch HN: Lunatic (YC W21) – An Erlang Inspired WebAssembly Platform
    5 projects | news.ycombinator.com | 6 Mar 2021
    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
    6 projects | dev.to | 22 Feb 2021
    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++"
    2 projects | /r/rust | 18 Feb 2021
    Recently I implemented a command line chat server in Rust using an actor framework. I model each TCP connection as an actor.
  • I built a telnet chat server with WebAssembly
    1 project | news.ycombinator.com | 6 Feb 2021
    Hi HN,

    I'm working on an Erlang inspired WebAssembly runtime for the backend[0]. Recently I added TCP support and was looking for apps I could build with it. I ended up building a telnet line chat app. It was a great dogfooding experience and has a nice retro feel to it.

    You can access the US server with:

    > telnet lunatic.chat

    or the EU one with:

    > telnet eu.lunatic.chat

    Pick the one closer to you, as all the rendering is done on the backend and lower latency will mean better UX.

    The server is open source[1] 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.

    [0]: https://github.com/lunatic-solutions/lunatic

    [1]: https://github.com/lunatic-solutions/chat

  • WebAssembly Powered Telnet Chat
    1 project | news.ycombinator.com | 6 Feb 2021
  • Lunatic.chat – A WebAssembly powered telnet chat
    1 project | news.ycombinator.com | 6 Feb 2021
  • A telnet chat server powered by WebAssembly
    1 project | news.ycombinator.com | 6 Feb 2021
  • telnet lunatic.chat – A chat server for the terminal
    3 projects | /r/programming | 5 Feb 2021
    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.

What are some alternatives?

When comparing embly and chat you can also consider the following projects:

meetings - WebAssembly meetings (VC or in-person), agendas, and notes

workers-rs - Write Cloudflare Workers in 100% Rust via WebAssembly

lumen - An alternative BEAM implementation, designed for WebAssembly

dl_api - The easiest, simplest and safest way to load dynamic (shared object) libraries from Rust!

chrono - Date and time library for Rust

grafbase - The future of APIs

mapscii - 🗺 MapSCII is a Braille & ASCII world map renderer for your console - enter => telnet mapscii.me <= on Mac (brew install telnet) and Linux, connect with PuTTY on Windows

lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly

webassembly-tour - ⚙️ Take you through a tour of WebAssembly (WASM targets on WASI) with wasmCloud, Krustlet, WAGI, etc. 🌟 Give it a star if you like it.

charm - The Charm Tool and Library 🌟