changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > org > notes / 20240419.org

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