PopCorn

Popcorn es una biblioteca que te permite ejecutar Elixir del lado del cliente en navegadores, con interoperabilidad con JavaScript. Utilizando la tecnología Web Assembly.

Internamente, Popcorn ejecuta AtomVM, una pequeña máquina virtual de Erlang. Actualmente está en beta por lo que puede tener algunos errores en versiones diferentes a Elixir 1.17.3 y Erlang 26.0.2.

# lib/my_app/worker.ex

defmodule MyApp.Worker do
  use GenServer

  @process_name :main

  def start_link(args) do
    GenServer.start_link(__MODULE__, args, name: @process_name)
  end

  @impl true
  def init(_init_arg) do
    Popcorn.Wasm.register(@process_name)
    IO.puts("Hello from WASM!")
    state = %{}
    {:ok, state}
  end
end