2 The backend services are written in Rust and controlled by a simple
3 messaging protocol. Services provide common runtime capabilities known
4 as the
/service protocol/ but are specialized on a unique
/service 5 type/ which may in turn register their own
/custom protocols/ (via
8 Services are capable of dispatching data directly to clients, or
9 storing data in the
/database/ (sqlite, postgres, mysql).
11 The frontend clients are pre-dominantly written in Common Lisp and
12 come in many shapes and sizes. There is a cli-client, web-client
13 (CLOG), docker-client (archlinux, stumpwm, McCLIM), and native-client
14 which also compiles to WASM (slint-rs).
18 - *install dependencies* 22 - *make executables* \\ 23 Simply run
=make build=. Read the
~makefile~ and change the options
25 - MODE :: Mode (debug, release)
26 - LISP :: Lisp (sbcl, cmucl, ccl)
27 - CFG :: Config (default.cfg)
33 Configs can be specified in JSON, TOML, RON, or of course SEXP. See
34 =default.cfg= for an example.
36 The high-level user interface is presented as a multi-modal GUI
37 application which adapts to the specific application
/instances/ 40 This backend retrieves weather data using the NWS API.
42 The 'Stocks' backend features a stock ticker with real-time analysis
45 This is a benchmark backend for testing the capabilities of our
46 demo. It spins up some mock services and allows fine-grained control
50 - consider tree-sitter parsing layout, use as a guide for developing a
51 single syntax which expands to Rust or C.
57 *** TODO rs-macroexpand 63 *** TODO c-macroexpand 69 *** TODO slint-macroexpand 75 *** TODO html (using who) 77 create a basic static page in CL which will be used to host Slint UIs
78 and other WASM doo-dads in a browser.
80 using clingon, decide on generic options and write it up
82 work on doc generation -- Rust and CL should be accounted for.
84 We have none! need to make it more comfy - set up testing in all Rust
85 crates and for the lisp systems.