{:paths ["src"] ;; glimmer owns the reactive half (ratom, components, reconciler); ;; glimmer-vidya paints it as Vidya/egui through libvidya's retained-tree ABI. ;; Our fork of glimmer, until the reconciler fixes in it land upstream. A ;; component unmounted between a cell firing and the queued render running ;; used to render anyway, into widgets the backend had already freed and ;; handed out again — which took the message list apart in a busy channel. ;; And replacing a native node with one of another tag left every watcher ;; under it subscribed, so swapping the phone layout for the split one and ;; back shredded the chat: one component's props painted onto another's ;; widget. :deps {jolt-lang/glimmer {:git/url "https://gitlab.com/nandithebull/glimmer" :git/sha "399df371c790d690fb6e4560c3d4d7f838502857"} nandi/glimmer-vidya {:git/url "https://gitlab.com/nandithebull/jolt-native" :git/sha "d970307ccf1fe67e2e971f2837d2282d8ba79a62" :deps/root "glimmer-backends/glimmer-vidya"}} ;; Both objects come from gitlab.com/nandithebull/jolt-native, one crate each, ;; out of one target directory: ;; ;; libvidya the retained-tree ABI glimmer-vidya binds, on egui ;; libjoltmoq the AV media plane — MoQ over QUIC, Opus, H.264, capture ;; ;; Calls are the one thing this client cannot do in jolt. Signaling is IRC and ;; lives in src/frq/av.clj; the media half is three thousand lines of codec ;; and transport that would only be written badly a second time here. ;; ;; just run :jolt/native [{:name "vidya" :darwin ["libvidya.dylib"] :linux ["libvidya.so"]} {:name "joltmoq" :darwin ["libjoltmoq.dylib"] :linux ["libjoltmoq.so"]} ;; moq-ffi's own object, built by the flake. It is not a ;; second media plane: it is the transport half plus the ;; codecs, behind UniFFI's C ABI, and it is here so `frq.moq.*` ;; has something to load while the port off libjoltmoq ;; happens. Both are declared for now, and the day frq.av ;; stops calling joltmoq_* is the day that entry goes. ;; ;; No :darwin because :systems is not: the flake builds for ;; x86_64-linux and aarch64-linux, and a .dylib named here ;; would name a file nothing produces. {:name "moq_ffi" :linux ["libmoq_ffi.so"]}] :aliases {:frq {:main-opts ["-m" "frq.app"]} ;; The same screens in a terminal. glimmer-tui is the other backend ;; for the same reconciler — libjolttui's tree ABI is libvidya's ;; with cells under it — so `frq.tui` requires it after `frq.app` ;; and renders the hiccup that is already written. ;; ;; A path rather than a sha, like glimmer-vidya's would be if this ;; alias were the way in: `just tui` builds jolt-native out of the ;; flake and hands both Jolt halves over with -Sdeps, so this is for ;; a checkout beside the tree and nothing else reads it. ;; ;; just tui :tui {:extra-deps {nandi/glimmer-tui {:local/root "../jolt-native/glimmer-backends/glimmer-tui"}} :main-opts ["-m" "frq.tui"]}} :tasks {frq "jolt -M:frq" tui "jolt -M:tui"}}