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
/core protocol/ but are specialized on a unique
/service type/ 10 which may in turn register their own
/custom protocols/ (via core).
12 Services are capable of dispatching data directly to clients, or
13 storing data in the
/database/ (TBD).
15 The frontend clients are pre-dominantly written in Common Lisp and
16 come in many shapes and sizes. There is a cli-client, web-client
17 (CLOG), docker-client (archlinux, stumpwm, McCLIM), and native-client
18 which also compiles to WASM (slint-rs).
22 - *install dependencies* 23 - Rust
=curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh= 26 - Ubuntu/Debian :: =sudo apt-get install sbcl= 27 - Arch BTW :: =sudo pacman -S sbcl= 28 - on MacOS :: =brew install sbcl= 29 - on Windows :: download from
30 <https://www.sbcl.org/platform-table.html> and figure it out.
31 - *make executables* \\ 32 Simply run
=make build=. Read the
~makefile~ and change the options
34 - M :: Mode (debug, release)
35 - L :: Lisp (sbcl, cmucl, ccl)
36 - C :: Config (default.cfg)
42 Configs can be specified in JSON, TOML, RON, or of course SEXP. See
43 =default.cfg= for an example.
45 The high-level user interface is presented as a multi-modal GUI
46 application which adapts to the specific application
/instances/ 49 This backend retrieves weather data using the NWS API.
51 The 'Stocks' backend features a stock ticker with real-time analysis
54 This is a benchmark backend for testing the capabilities of our
55 demo. It spins up some mock services and allows fine-grained control
59 - consider tree-sitter parsing layout, use as a guide for developing a
60 single syntax which expands to Rust or C.
66 *** TODO rs-macroexpand 72 *** TODO c-macroexpand 78 *** TODO slint-macroexpand 84 *** TODO html (using who) 86 create a basic static page in CL which will be used to host Slint UIs
87 and other WASM doo-dads in a browser.
89 using clingon, decide on generic options and write it up
91 work on doc generation -- Rust and CL should be accounted for.
93 We have none! need to make it more comfy - set up testing in all Rust
94 crates and for the lisp systems.