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 - Rust
=curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh= 30 - Ubuntu/Debian :: =sudo apt-get install sbcl= 31 - Arch BTW :: =sudo pacman -S sbcl= 32 - on MacOS :: =brew install sbcl= 33 - on Windows :: download from
34 <https://www.sbcl.org/platform-table.html> and figure it out.
35 - *make executables* \\ 36 Simply run
=make build=. Read the
~makefile~ and change the options
38 - M :: Mode (debug, release)
39 - L :: Lisp (sbcl, cmucl, ccl)
40 - C :: Config (default.cfg)
46 Configs can be specified in JSON, TOML, RON, or of course SEXP. See
47 =default.cfg= for an example.
49 The high-level user interface is presented as a multi-modal GUI
50 application which adapts to the specific application
/instances/ 53 This backend retrieves weather data using the NWS API.
55 The 'Stocks' backend features a stock ticker with real-time analysis
58 This is a benchmark backend for testing the capabilities of our
59 demo. It spins up some mock services and allows fine-grained control
63 - consider tree-sitter parsing layout, use as a guide for developing a
64 single syntax which expands to Rust or C.
70 *** TODO rs-macroexpand 76 *** TODO c-macroexpand 82 *** TODO slint-macroexpand 88 *** TODO html (using who) 90 create a basic static page in CL which will be used to host Slint UIs
91 and other WASM doo-dads in a browser.
93 using clingon, decide on generic options and write it up
95 work on doc generation -- Rust and CL should be accounted for.
97 We have none! need to make it more comfy - set up testing in all Rust
98 crates and for the lisp systems.