defmodule LivebookWeb.SessionLive.EmbeddedLive do use LivebookWeb, :live_view alias Livebook.{Session, Runtime} @impl true def mount(_params, %{"session_id" => session_id}, socket) do {:ok, assign(socket, session_id: session_id)} end @impl true def render(assigns) do ~H"""

Run the notebook code within the Livebook node itself. This is reserved for specific cases where there is no option of starting a separate Elixir runtime (for example, on embedded devices or cases where the amount of memory available is limited). Prefer the "Elixir standalone" runtime whenever possible.

Warning: any module that you define will be defined globally until you restart Livebook. Furthermore, code in one notebook may interfere with code from another notebook.

""" end @impl true def handle_event("init", _params, socket) do {:ok, runtime} = Runtime.Embedded.init() Session.connect_runtime(socket.assigns.session_id, runtime) {:noreply, socket} end end