changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > demo / annotate readme.org

changeset 31: 77da08c7f445
parent: 529419ac94f3
child: 81b7333f27f8
author: ellis <ellis@rwest.io>
date: Sun, 18 Jun 2023 22:25:28 -0400
permissions: -rw-r--r--
description: bugfixes, tweaks to run.lisp
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
27
529419ac94f3 refactor 2 (wip)
ellis <ellis@rwest.io>
parents: 22
diff changeset
9
 as the /service protocol/ but are specialized on a unique /service
529419ac94f3 refactor 2 (wip)
ellis <ellis@rwest.io>
parents: 22
diff changeset
10
 type/ which may in turn register their own /custom protocols/ (via
529419ac94f3 refactor 2 (wip)
ellis <ellis@rwest.io>
parents: 22
diff changeset
11
 core).
22
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
12
 
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
13
 Services are capable of dispatching data directly to clients, or
27
529419ac94f3 refactor 2 (wip)
ellis <ellis@rwest.io>
parents: 22
diff changeset
14
 storing data in the /database/ (sqlite, postgres, mysql).
22
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
15
 
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
16
 The frontend clients are pre-dominantly written in Common Lisp and
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
17
 come in many shapes and sizes. There is a cli-client, web-client
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
18
 (CLOG), docker-client (archlinux, stumpwm, McCLIM), and native-client
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
19
 which also compiles to WASM (slint-rs).
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
20
 
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
21
 * Guide
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
22
 ** Build
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
23
 - *install dependencies*
27
529419ac94f3 refactor 2 (wip)
ellis <ellis@rwest.io>
parents: 22
diff changeset
24
   #+begin_src bash
529419ac94f3 refactor 2 (wip)
ellis <ellis@rwest.io>
parents: 22
diff changeset
25
     ./tools/deps.sh
529419ac94f3 refactor 2 (wip)
ellis <ellis@rwest.io>
parents: 22
diff changeset
26
   #+end_src
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
27
 - *make executables* \\
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
28
   Simply run =make build=. Read the ~makefile~ and change the options
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
29
   as needed.
31
77da08c7f445 bugfixes, tweaks to run.lisp
ellis <ellis@rwest.io>
parents: 27
diff changeset
30
 - MODE :: Mode (debug, release)
77da08c7f445 bugfixes, tweaks to run.lisp
ellis <ellis@rwest.io>
parents: 27
diff changeset
31
 - LISP :: Lisp (sbcl, cmucl, ccl)
77da08c7f445 bugfixes, tweaks to run.lisp
ellis <ellis@rwest.io>
parents: 27
diff changeset
32
 - CFG :: Config (default.cfg)
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
33
 ** Run
18
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
34
 #+begin_src shell
22
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
35
   ./demo -i
18
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
36
 #+end_src
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
37
 ** Config
22
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
38
 Configs can be specified in JSON, TOML, RON, or of course SEXP. See
ba323d8c0f93 refactor1
ellis <ellis@rwest.io>
parents: 19
diff changeset
39
 =default.cfg= for an example.
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
40
 ** Play
19
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
41
 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
42
 application which adapts to the specific application /instances/
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
43
 below.
14
2bbf5ce73537 rs updates
ellis <ellis@rwest.io>
parents: 9
diff changeset
44
 *** Weather
18
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
45
 This backend retrieves weather data using the NWS API.
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
46
 *** Stocks
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
47
 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
48
 capabilities.
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
49
 *** Bench
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
50
 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
51
 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
52
 of input/throughput.
8
bebb76da449c tests and stuff
ellis <ellis@rwest.io>
parents: 3
diff changeset
53
 * tasks
9
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
54
 ** TODO DSLs
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
55
 - 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
56
   single syntax which expands to Rust or C.
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
57
 - with-rs
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
58
 - with-c
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
59
 - with-rs/c
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
60
 - with-cargo
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
61
 - compile-rs/c
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
62
 *** TODO rs-macroexpand
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
63
 - rs-gen-file
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
64
 - rs-defmacro
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
65
 - rs-macros
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
66
 - rs-macroexpand
8
bebb76da449c tests and stuff
ellis <ellis@rwest.io>
parents: 3
diff changeset
67
 - rs-macroexpand-1
9
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
68
 *** TODO c-macroexpand
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
69
 - c-gen-file h/c
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
70
 - c-defmacro
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
71
 - c-macros
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
72
 - c-macroexpand
b9720ba9c4a0 readme, removed redundant script
ellis <ellis@rwest.io>
parents: 8
diff changeset
73
 - c-macroexpand-1
18
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
74
 *** TODO slint-macroexpand
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
75
 - slint-gen-file
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
76
 - slint-defmacro
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
77
 - slint-macros
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
78
 - slint-macroexpand
a1137af05c8d removed fig, use sexprs instead
ellis <ellis@rwest.io>
parents: 14
diff changeset
79
 - slint-macroexpand-1
19
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
80
 *** TODO html (using who)
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
81
 ** TODO web templates
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
82
 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
83
 and other WASM doo-dads in a browser.
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
84
 ** TODO CLI
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
85
 using clingon, decide on generic options and write it up
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
86
 ** TODO docs
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
87
 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
88
 ** TODO tests
fd19fdc77a20 readme update, removed scripts dir
ellis <ellis@rwest.io>
parents: 18
diff changeset
89
 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
90
 crates and for the lisp systems.