Native iOS (SwiftUI) client for djust LiveView.
Status: Scaffold only — implementation tracked in
djust-org/djust#1579 (LVN-III).
This repo currently contains LICENSE + this README; the SwiftPM
Package.swift, source, tests, and CI all land via that issue's PR
sequence.
djust ships a server-side reactive framework (Django + Rust VDOM). The
default client is HTML in a browser — client.js consumes a stream of
VDOM patches over WebSocket and applies them to the DOM. This repo will
ship a parallel client: subscribe to the same WebSocket, consume the
same patch stream, render true SwiftUI widgets instead of HTML.
The pattern is borrowed from Phoenix LiveView Native. djust's specific design lives in ADR-019: LiveView Native.
import DjustNative
struct ContentView: View {
var body: some View {
DjustLiveView(url: URL(string: "ws://127.0.0.1:8111/ws/live/")!)
}
}DjustLiveView returns a SwiftUI some View. URL connection, msgpack
decoding, the four-phase patch applicator (Remove → Move → Insert →
other, per
ADR-013),
event sending, and reconnect/sticky semantics (per
ADRs 011 / 014 / 018)
all live behind the single view.
| Repo | Purpose |
|---|---|
djust-org/djust |
The framework. Server-side reactive Python + Rust VDOM. |
djust-org/djust-native-android |
Android equivalent (Jetpack Compose). Same protocol, different platform. |
djust-org/djust-mobile-toga |
WebView mode — reuse web templates verbatim inside a Toga WebView. The "easy mode" alongside this repo's "polish mode." |
MIT — matches djust.