changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > demo / annotate readme.org

changeset 22: ba323d8c0f93
parent: fd19fdc77a20
child: 529419ac94f3
author: ellis <ellis@rwest.io>
date: Sat, 03 Jun 2023 22:48:46 -0400
permissions: -rw-r--r--
description: refactor1
22
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
1
 #+TITTLE: Demo
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
2
 Welcome to our first demo system. What you will find here is a modular
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
3
 client-server software stack which can be extended and customized by
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
4
 the user at runtime.
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
5
 
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
6
 * How it works
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
7
 The backend services are written in Rust and controlled by a simple
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
8
 messaging protocol. Services provide common runtime capabilities known
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
9
 as the /core protocol/ but are specialized on a unique /service type/
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
10
 which may in turn register their own /custom protocols/ (via core).
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
11
 
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
12
 Services are capable of dispatching data directly to clients, or
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
13
 storing data in the /database/ (TBD).
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
14
 
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
15
 The frontend clients are pre-dominantly written in Common Lisp and
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
16
 come in many shapes and sizes. There is a cli-client, web-client
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
17
 (CLOG), docker-client (archlinux, stumpwm, McCLIM), and native-client
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
18
 which also compiles to WASM (slint-rs).
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
19
 
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
20
 * Guide
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
21
 ** Build
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
22
 - *install dependencies*
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
23
   - Rust =curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh=
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
24
   - Common Lisp
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
25
     - on Linux ::
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
26
       - Ubuntu/Debian :: =sudo apt-get install sbcl=
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
27
       - Arch BTW :: =sudo pacman -S sbcl=
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
28
     - on MacOS :: =brew install sbcl=
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
29
     - on Windows :: download from
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
30
       <https://www.sbcl.org/platform-table.html> and figure it out.
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
31
 - *make executables* \\
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
32
   Simply run =make build=. Read the ~makefile~ and change the options
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
33
   as needed.
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
34
 - M :: Mode (debug, release)
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
35
 - L :: Lisp (sbcl, cmucl, ccl)
22
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
36
 - C :: Config (default.cfg)
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
37
 ** Run
18
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
38
 #+begin_src shell
22
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
39
   ./demo -i
18
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
40
 #+end_src
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
41
 ** Config
22
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
42
 Configs can be specified in JSON, TOML, RON, or of course SEXP. See
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
43
 =default.cfg= for an example.
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
44
 ** Play
19
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
45
 The high-level user interface is presented as a multi-modal GUI
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
46
 application which adapts to the specific application /instances/
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
47
 below.
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
48
 *** Weather
18
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
49
 This backend retrieves weather data using the NWS API.
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
50
 *** Stocks
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
51
 The 'Stocks' backend features a stock ticker with real-time analysis
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
52
 capabilities.
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
53
 *** Bench
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
54
 This is a benchmark backend for testing the capabilities of our
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
55
 demo. It spins up some mock services and allows fine-grained control
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
56
 of input/throughput.
8
bebb76da449c tests and stuff
ellis <ellis@rwest.io>
parents: 3
diff changeset
57
 * tasks
9
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
58
 ** TODO DSLs
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
59
 - consider tree-sitter parsing layout, use as a guide for developing a
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
60
   single syntax which expands to Rust or C.
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
61
 - with-rs
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
62
 - with-c
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
63
 - with-rs/c
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
64
 - with-cargo
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
65
 - compile-rs/c
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
66
 *** TODO rs-macroexpand
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
67
 - rs-gen-file
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
68
 - rs-defmacro
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
69
 - rs-macros
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
70
 - rs-macroexpand
8
bebb76da449c tests and stuff
ellis <ellis@rwest.io>
parents: 3
diff changeset
71
 - rs-macroexpand-1
9
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
72
 *** TODO c-macroexpand
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
73
 - c-gen-file h/c
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
74
 - c-defmacro
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
75
 - c-macros
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
76
 - c-macroexpand
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
77
 - c-macroexpand-1
18
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
78
 *** TODO slint-macroexpand
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
79
 - slint-gen-file
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
80
 - slint-defmacro
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
81
 - slint-macros
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
82
 - slint-macroexpand
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
83
 - slint-macroexpand-1
19
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
84
 *** TODO html (using who)
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
85
 ** TODO web templates
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
86
 create a basic static page in CL which will be used to host Slint UIs
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
87
 and other WASM doo-dads in a browser.
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
88
 ** TODO CLI
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
89
 using clingon, decide on generic options and write it up
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
90
 ** TODO docs
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
91
 work on doc generation -- Rust and CL should be accounted for.
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
92
 ** TODO tests
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
93
 We have none! need to make it more comfy - set up testing in all Rust
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
94
 crates and for the lisp systems.