Azoth

Web Components-first PWA framework for Elixir, powered by WebAssembly.

⚠️ Warning: This project is in very early development.

Installation

If available in Hex, the package can be installed by adding azoth to your list of dependencies in mix.exs:

def deps do
  [
    {:azoth, "~> 0.1.0"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/azoth.

Architecture

┌─────────────────────────────────┐
│  Azoth Framework                │
│                                 │
│  ┌─────────────────────────┐    │
│  │  Lit Web Components     │    │
│  │  (TypeScript, ~5KB)     │    │
│  │  Reaktive UI-Schicht    │    │
│  └──────────┬──────────────┘    │
│             │                   │
│  ┌──────────▼──────────────┐    │
│  │  Elixir/WASM            │    │
│  │  (AtomVM/Orb)           │    │
│  │  Business Logik         │    │
│  └──────────┬──────────────┘    │
│             │                   │
│  ┌──────────▼──────────────┐    │
│  │  Service Worker         │    │
│  │  IndexedDB              │    │
│  └─────────────────────────┘    │
└──────────────┬──────────────────┘
               │ Phoenix Channels
               ▼
          Phoenix Server