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