nandi/frqpublic Fork 0
f735240c84659e2c5427f3c52b5665207e08ce2a
Commits
Clone
git clone https://git.rickub.com/nandi/frq.git
git clone ssh://git@rickub.com/nandi/frq.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

deps.edn · 105 lines · 5.6 KBClojure Blame HistoryRaw
Split the tree three ways, and let the phone be Flutter's 7070931 nandi 7d ago1{;; Two source roots, and the split is the point. `common` is compiled by both
2 ;; jolt and ClojureDart, so nothing in it may mention either — see
3 ;; common/frq/io.cljc. `src` is the jolt half: glimmer, jolt.ffi, and the two
4 ;; desktop backends. The Flutter half is flutter/src and is not on this
5 ;; classpath at all; it has a deps.edn of its own, and it — not jolt — is
6 ;; what builds the APK now.
7 :paths ["common" "src"]
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago8
Split the tree three ways, and let the phone be Flutter's 7070931 nandi 7d ago9 ;; glimmer owns the reactive half (ratom, components, reconciler); which
10 ;; backend paints it is the entry point's business and is not named here.
11 ;; glimmer-cosmic lives inside jolt-native beside the libjoltcosmic.so it
12 ;; binds, so it comes over with -Sdeps from whatever built that object rather
13 ;; than from a git sha that could drift from it — the same reason glimmer-tui
14 ;; is handed over rather than declared. There is no jvui and no vidya here
15 ;; any more: both were experiments, and both are gone.
Paint frq with jvui, and take the last Rust out of the window 77963dc nandi 9d ago16 ;;
Show the list and the conversation at once on a wide window 10a1bd0 nandi 19d ago17 ;; Our fork of glimmer, until the reconciler fixes in it land upstream. A
Keep a row's actions from wandering when its line gets an id 5b5e90e nandi 19d ago18 ;; component unmounted between a cell firing and the queued render running
19 ;; used to render anyway, into widgets the backend had already freed and
20 ;; handed out again — which took the message list apart in a busy channel.
Show the list and the conversation at once on a wide window 10a1bd0 nandi 19d ago21 ;; And replacing a native node with one of another tag left every watcher
22 ;; under it subscribed, so swapping the phone layout for the split one and
23 ;; back shredded the chat: one component's props painted onto another's
24 ;; widget.
Split the tree three ways, and let the phone be Flutter's 7070931 nandi 7d ago25 :deps {jolt-lang/glimmer {:git/url "https://gitlab.com/nandithebull/glimmer"
26 :git/sha "399df371c790d690fb6e4560c3d4d7f838502857"}}
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago27
Split the tree three ways, and let the phone be Flutter's 7070931 nandi 7d ago28 ;; What the window loads is libjoltcosmic and what the terminal loads is
29 ;; libjolttui; each recipe hands its own over, so neither is named here.
Take both native libraries from one place a66d1c1 nandi 19d ago30 ;;
Switch frq.av onto the jolt media plane, and stop shipping libjoltmoq b33f288 nandi 9d ago31 ;; Calls used to be the one thing this client could not do in jolt. The media
32 ;; half is `frq.av.plane` now — MoQ over QUIC from libmoq_ffi, Opus from
33 ;; libopus, H.264 from openh264 through a shim, and the devices from V4L2
34 ;; and ALSA. Signaling was always IRC and still lives in src/frq/av.clj.
Take both native libraries from one place a66d1c1 nandi 19d ago35 ;;
Build the desktop libraries rather than fetching a release of them 0b81161 nandi 15d ago36 ;; just run
Paint frq with jvui, and take the last Rust out of the window 77963dc nandi 9d ago37 :jolt/native [;; The transport half of a call: MoQ over QUIC, the one
Switch frq.av onto the jolt media plane, and stop shipping libjoltmoq b33f288 nandi 9d ago38 ;; piece with no C implementation anywhere. Fetched from
39 ;; moq-ffi's release rather than built — building it means a
40 ;; 1062-crate workspace.
Bind libmoq_ffi from the object's own metadata, not from its header 9f081a1 nandi 9d ago41 ;;
Switch frq.av onto the jolt media plane, and stop shipping libjoltmoq b33f288 nandi 9d ago42 ;; The codecs are NOT in it. moq-ffi's `audio` and `video`
43 ;; features are off in every Linux artifact upstream ships,
44 ;; so Opus and H.264 come from their own C libraries below,
45 ;; which is the whole point of doing this over FFI rather
46 ;; than over a Rust facade.
Fetch libmoq_ffi again, and keep the codecs out of Rust f518938 nandi 9d ago47 ;;
48 ;; No :darwin: :systems is x86_64-linux and aarch64-linux, so
49 ;; a .dylib named here would name a file nothing fetches.
Bind libmoq_ffi from the object's own metadata, not from its header 9f081a1 nandi 9d ago50 {:name "moq_ffi"
Bind the C libraries a call actually needs 87e5be9 nandi 9d ago51 :linux ["libmoq_ffi.so"]}
52
53 ;; The codecs, as C libraries rather than as somebody's
54 ;; bindings to them. Opus first; openh264 beside it when the
55 ;; video half lands.
56 ;;
57 ;; The SONAME, not the bare .so: a `libopus.so` is the -dev
58 ;; symlink and is not what a runtime closure carries. The
59 ;; loader looks these up by name in one directory, which the
60 ;; flake's `nativeAll` is.
61 {:name "opus"
62 :linux ["libopus.so.0"]
63 :darwin ["libopus.0.dylib"]}
64
65 ;; H.264, one step removed. openh264's C API is a vtable —
66 ;; `ISVCEncoder` is `const ISVCEncoderVtbl*` — and jolt.ffi
67 ;; can only call a literal C symbol, never a function
68 ;; pointer. c/frq_h264.c walks the vtable and exports flat
69 ;; symbols; this is that. libopenh264 itself comes along as
70 ;; its DT_NEEDED and is never named here.
71 {:name "frqh264"
72 :linux ["libfrqh264.so"]
73 :darwin ["libfrqh264.dylib"]}
74
75 ;; Audio devices. No :darwin — CoreAudio is the other side of
76 ;; that door and is not this library.
77 ;;
78 ;; V4L2 is deliberately absent from this list: the camera is
79 ;; ioctls against libc and the kernel, so there is nothing to
80 ;; load. See frq.capture.v4l2.
81 {:name "asound"
82 :linux ["libasound.so.2"]}]
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago83
Split the tree three ways, and let the phone be Flutter's 7070931 nandi 7d ago84 ;; No :frq alias: `frq.app` is the screens and has no -main any more. There
85 ;; is one entry point per backend and each needs its backend handed over, so
86 ;; the recipes are the way in — `just cosmic` for the window, `just tui` for
87 ;; the terminal.
88 :aliases {;; The same screens in a terminal. glimmer-tui is one backend for
89 ;; the reconciler and glimmer-cosmic is the other — the same tree
90 ;; ABI with cells under it instead of libcosmic — so `frq.tui`
91 ;; requires it after `frq.app` and renders the hiccup that is
92 ;; already written.
Paint the same screens into a terminal ab83b42 nandi 17d ago93 ;;
Split the tree three ways, and let the phone be Flutter's 7070931 nandi 7d ago94 ;; A path rather than a sha: `just tui` builds jolt-native out of
95 ;; the flake and hands both Jolt halves over with -Sdeps, so this is
96 ;; for a checkout beside the tree and nothing else reads it. The
97 ;; window has no alias of its own for the same reason — see
98 ;; `just cosmic`.
Paint the same screens into a terminal ab83b42 nandi 17d ago99 ;;
100 ;; just tui
101 :tui {:extra-deps {nandi/glimmer-tui
Retire the release-bumping script 4f38d68 nandi 11d ago102 {:local/root "../jolt-native/glimmer-backends/glimmer-tui"}}
Paint the same screens into a terminal ab83b42 nandi 17d ago103 :main-opts ["-m" "frq.tui"]}}
104
Split the tree three ways, and let the phone be Flutter's 7070931 nandi 7d ago105 :tasks {tui "jolt -M:tui"}}