changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > org > notes / 20240419.org

changeset 0: 87b04952fb18
child: 04e86b94ef1a
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 28 Apr 2024 19:51:45 -0400
permissions: -rw-r--r--
description: init
1 #+title: demo-old-readme
2 * How it works
3 The backend services are written in Rust and controlled by a simple
4 messaging protocol. Services provide common runtime capabilities known
5 as the /service protocol/ but are specialized on a unique /service
6 type/ which may in turn register their own /custom protocols/ (via
7 core).
8 
9 Services are capable of dispatching data directly to clients, or
10 storing data in the /database/ (sqlite, postgres, mysql).
11 
12 The frontend clients are pre-dominantly written in Common Lisp and
13 come in many shapes and sizes. There is a cli-client, web-client
14 (CLOG), docker-client (archlinux, stumpwm, McCLIM), and native-client
15 which also compiles to WASM (slint-rs).
16 
17 * Guide
18 ** Build
19 - *install dependencies*
20  #+begin_src bash
21  ./tools/deps.sh
22  #+end_src
23 - *make executables* \\
24  Simply run =make build=. Read the ~makefile~ and change the options
25  as needed.
26 - MODE :: Mode (debug, release)
27 - LISP :: Lisp (sbcl, cmucl, ccl)
28 - CFG :: Config (default.cfg)
29 ** Run
30 #+begin_src shell
31  ./demo -i
32 #+end_src
33 ** Config
34 Configs can be specified in JSON, TOML, RON, or of course SEXP. See
35 =default.cfg= for an example.
36 ** Play
37 The high-level user interface is presented as a multi-modal GUI
38 application which adapts to the specific application /instances/
39 below.
40 *** Weather
41 This backend retrieves weather data using the NWS API.
42 *** Stocks
43 The 'Stocks' backend features a stock ticker with real-time analysis
44 capabilities.
45 *** Bench
46 This is a benchmark backend for testing the capabilities of our
47 demo. It spins up some mock services and allows fine-grained control
48 of input/throughput.
49 * tasks
50 ** TODO DSLs
51 - consider tree-sitter parsing layout, use as a guide for developing a
52  single syntax which expands to Rust or C.
53 - with-rs
54 - with-c
55 - with-rs/c
56 - with-cargo
57 - compile-rs/c
58 *** TODO rs-macroexpand
59 - rs-gen-file
60 - rs-defmacro
61 - rs-macros
62 - rs-macroexpand
63 - rs-macroexpand-1
64 *** TODO c-macroexpand
65 - c-gen-file h/c
66 - c-defmacro
67 - c-macros
68 - c-macroexpand
69 - c-macroexpand-1
70 *** TODO slint-macroexpand
71 - slint-gen-file
72 - slint-defmacro
73 - slint-macros
74 - slint-macroexpand
75 - slint-macroexpand-1
76 *** TODO html (using who)
77 ** TODO web templates
78 create a basic static page in CL which will be used to host Slint UIs
79 and other WASM doo-dads in a browser.
80 ** TODO CLI
81 using clingon, decide on generic options and write it up
82 ** TODO docs
83 work on doc generation -- Rust and CL should be accounted for.
84 ** TODO tests
85 We have none! need to make it more comfy - set up testing in all Rust
86 crates and for the lisp systems.