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