Skip to content

djust-org/djust-native-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

djust-native-ios

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.

What this is

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.

Eventual public API

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.

Companion repos

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."

License

MIT — matches djust.

About

Native iOS (SwiftUI) client for djust LiveView. See ADR-019 in djust-org/djust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages