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

blatyo
https://www.conduitframework.com/ The best overview for how things are tied together is this presentation. Modules and functions are pre...
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
Qqwy
While not as prevalent as in imperative languages, arrays (collections with efficient random element access) are still very useful in Eli...
New
tmbb
I’ve decided to create this topic to discuss optimization possibilities for something like Phoenix LiveView. I’ve created this topic unde...
New
Crowdhailer
The latest release of Ace (0.10.0) includes serving content over HTTP/2. I have started writing a webserver to teach my self more about...
New
kelvinst
There was a feature proposal recently on Elixir core mailing list where an idea born. I got very interested in the idea, but it is not go...
New
Qqwy
Hello everyone, I wrote a small library today called MapDiff. It returns a map listing the (smallest amount of) changes to get from map...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
New
mattludwigs
Grizzly is a library for working with Z-Wave devices. Z-Wave is a low-frequency radio protocol for controlling smart home devices on a me...
New
ostinelli
Let’s write a database! Well not really, but I think it’s a little sad that there doesn’t seem to be a simple in-memory distributed KV da...
New

Other popular topics Top

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
yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
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
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New

Sub Categories:

We're in Beta

About us Mission Statement