mat-hek

mat-hek

Membrane Core Team

Popcorn - a new tool to run Elixir in browsers

Popcorn lets you run Elixir code in the browser via WebAssembly. It builds on top of AtomVM, a tiny Erlang VM. It’s early stages and breaks sometimes, but you can run Elixir code and even Elixir and Erlang compilers right from the browser.

We created some cool examples too - check them out at popcorn.swmansion.com, and the repo is available at

Happy hacking :wink:

Most Liked

mat-hek

mat-hek

Membrane Core Team

No, it’s quite the opposite :smiley: The goal is to run Elixir code on the client side. It would enable features like IEx or HexDocs examples running in the browser, but also local-first applications in Elixir. We aim to provide as many BEAM features as we can, if they make sense in that context, and good enough performance for these use cases.

13
Post #9
jgonet

jgonet

:popcorn: Popcorn 0.1.0

I’m very happy to announce first official Popcorn release. On this occasion, Mateusz wrote a blog post that mostly covers what was said on Elixir Conf EU.

Since last time we made a bit of progress:

  • Support for OTP applications.
  • IEx example.
  • run_js value batching.
  • New NIFs, fixes for old ones, finding missing ones. Good ol’ “various fixes and improvements”.

For the near future, we want to discuss good, concrete use-cases for Popcorn, do some research, and stabilize whatever we can.
We welcome any form of feedback: bug reports, ideas, sharing demos, etc. Find us on Github, Software Mansion Discord, or at popcorn@swmansion.com.

AstonJ

AstonJ

This is really cool! I just cross-posted on EFS in the AtomVM forum :icon_biggrin:

jgonet

jgonet

It was an experiment at first, connecting with José’s vision of Elixir interoperability (check out his keynote talk at Elixir Conf EU). We’d like to do more open-source at Software Mansion, too.

I personally find value in future integration with ecosystem libraries and frameworks – improving JS interop in Phoenix, creating local-first apps (Ecto, ElectricSQL), a layer calling endpoints in Ash via plain Elixir, etc. A nice side-effect is improving AtomVM and its embedded use-cases.

As in original post, we’re currently in state where things start to stabilize and we can focus on those. I see Popcorn as a meta-framework and I find it important for the library to suggest some use-cases. When possibilities are endless, thinking about concrete solutions is harder.

arcanemachine

arcanemachine

Awesome. Glad to see the dream of Elixir-in-the-browser is being kept alive!

Where Next?

Popular in Libraries Top

seancribbs
Today I released a new dialyzer Mix task as the dialyzex package! At the time we started writing this task, the existing dialyzer integra...
New
woutdp
Hi! I wanted to introduce my latest project LiveSvelte. It allows you to render Svelte inside LiveView with end-to-end reactivity. It’s ...
New
mcrumm
If you would like to migrate away from node/npm/webpack while still using sass, the dart_sass package provides a installer and runner for...
New
achempion
Hi, I would like to tell about my initiative to further maintain and develop Waffle project which is the fork of Arc library. The progre...
New
wfgilman
I’ve cleaned up and open sourced three financial libraries I was using for my company. They are bindings for the APIs of these three comp...
New
riverrun
I’ve just released version 3 of Comeonin, a password hashing library. The following small changes have been made: changes to the NIF c...
New
benlime
I created a new library GitHub - benvp/ex_cva: Class Variance Authority for Elixir which aims to make it very easy to define different va...
New
ericlathrop
I built a silly site for Halloween that uses Phoenix Channels on the backend, and React on the frontend. I had many problems integrating ...
New
Qqwy
While not as prevalent as in imperative languages, arrays (collections with efficient random element access) are still very useful in Eli...
New
gjaldon
As the title states, EctoEnum has just been updated after some time of hardly any activity in the repo. Here’s the latest release: https:...
New

Other popular topics Top

William
I would like to know that is there any online source for learning Phoenix Framework for building E-Commerce Store? Any advantage on build...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list....
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New

Sub Categories:

We're in Beta

About us Mission Statement