3 :ID: 439a4945-de2f-4985-ba6c-fe6421aa9ad9 5 The backend services are written in Rust and controlled by a simple
6 messaging protocol. Services provide common runtime capabilities known
7 as the
/service protocol/ but are specialized on a unique
/service 8 type/ which may in turn register their own
/custom protocols/ (via
11 Services are capable of dispatching data directly to clients, or
12 storing data in the
/database/ (sqlite, postgres, mysql).
14 The frontend clients are pre-dominantly written in Common Lisp and
15 come in many shapes and sizes. There is a cli-client, web-client
16 (CLOG), docker-client (archlinux, stumpwm, McCLIM), and native-client
17 which also compiles to WASM (slint-rs).
21 :ID: 65140d2c-5d59-48cd-946c-01c380a37f08 25 :ID: ad0652ca-4abf-4d27-8897-a61a13a6e61d 27 - *install dependencies* 31 - *make executables* \\ 32 Simply run
=make build=. Read the
~makefile~ and change the options
34 - MODE :: Mode (debug, release)
35 - LISP :: Lisp (sbcl, cmucl, ccl)
36 - CFG :: Config (default.cfg)
39 :ID: b2295442-ccb7-4a5c-8a9e-ea8502aad636 46 :ID: 600be170-d032-4280-a7b5-c46e3c157206 48 Configs can be specified in JSON, TOML, RON, or of course SEXP. See
49 =default.cfg= for an example.
52 :ID: 56a69ed7-2eb3-4490-95a1-072cee985df5 54 The high-level user interface is presented as a multi-modal GUI
55 application which adapts to the specific application
/instances/ 59 :ID: 804a174b-534c-4a04-966a-b44c0a86fbd4 61 This backend retrieves weather data using the NWS API.
64 :ID: 4e7339bb-aaf3-4fab-90e4-05e13f24f881 66 The 'Stocks' backend features a stock ticker with real-time analysis
70 :ID: e3cf0add-6ded-4c05-a05d-7ef463b85b08 72 This is a benchmark backend for testing the capabilities of our
73 demo. It spins up some mock services and allows fine-grained control
77 :ID: a16a3807-0e06-4c8d-baf6-5dfa8f8f5585 81 :ID: 3ae4754e-0c0f-4923-9e53-ae962b8638a1 83 - consider tree-sitter parsing layout, use as a guide for developing a
84 single syntax which expands to Rust or C.
90 *** TODO rs-macroexpand 92 :ID: f612975f-6bcc-4aab-b0d8-65b8ff0a0d0f 99 *** TODO c-macroexpand 101 :ID: 49f5c224-026d-4cdc-a326-1742e64c4279 108 *** TODO slint-macroexpand 110 :ID: 486beb12-179b-4acc-8507-cdc498edb628 116 - slint-macroexpand-1
117 *** TODO html (using who) 119 :ID: 2e81a19c-874c-4fd7-be0f-f6cd62c660db 121 ** TODO web templates 123 :ID: 95f7d6ac-c010-4d1d-a47d-1693bb7d6eab 125 create a basic static page in CL which will be used to host Slint UIs
126 and other WASM doo-dads in a browser.
129 :ID: fc1d5364-279c-4d5f-baea-ed2c110b63f0 131 using clingon, decide on generic options and write it up
134 :ID: 467e84e3-e72f-4764-8858-cc15fdc17e8a 136 work on doc generation -- Rust and CL should be accounted for.
139 :ID: 70aea01c-d01e-4ddf-aaf5-c86183a7e250 141 We have none! need to make it more comfy - set up testing in all Rust
142 crates and for the lisp systems.