Oregami
Repositories/oxedyne/fe2o3

oxedyne/fe2o3/PROGRESS.md

3.6 KiB, 14 runs

created by r1870400018:11, which is this file's identity for as long as the history lasts, whatever it is later renamed to

download · who wrote it · its history

1# Hematite Progress
2
3This is a dynamic document, and shows the latest goals of development work.
4
5## Jdat functionality: `fe2o3_jdat`
6
7- [x] Added implicit tuple string decoding for round brackets, e.g. explicit (tup2|[1,2]), implicit (1,2)
8
9## Data functionality: `fe2o3_data`
10
11- [ ] Generic `UndoManager` to provide multi-user support for any kind of product/state
12
13## Ozone database: `fe2o3_o3db`
14
15- [ ] Split into `fe2o3_o3db_sync` and `fe2o3_o3db_async` versions.
16
17### Sync version
18
19- [x] Basic functional database with (k, v) create, read, update and delete (CRUD)
20- [ ] Reliably functional garbage collection
21- [ ] Establish query functionality
22 - [ ] Basic key pattern matching, e.g. `"user/*/profile"`
23 - [ ] Regex key pattern matching, e.g. `"user\/\d+\/name"`
24 - [ ] Query api using `fe2o3_syntax`, e.g.
25 ```
26 query --key (or|["user/A*", "user/B*"]) --map-key (regex|"[aA]ge") --map-val (range|(20.0, 30.0)) --lim 10
27 ```
28 - [ ] Custom kinds
29 - [ ] Boolean logic trees
30 - [ ] Regex
31 - [ ] Numerical ranges
32 - [ ] Query results caching
33 - [ ] Employ the `UndoManager` for atomic transactions
34 - [ ] Query result streaming for large datasets
35
36### Async version
37
38- [ ]
39
40## Network functionality: `fe2o3_net`
41
42- [ ] Generic `AddressGuard` to provide protection against threatening network requests from addresses
43- [ ] Generic `UserGuard` to provide protection against threatening network requests from users
44
45## Steel web server: `fe2o3_steel`
46
47- [x] Generic TCP server and HTTP, HTTPS and HTML library foundations in `fe2o3_net`
48- [x] Separation of app (`./src/main.rs`, `./src/app/`) and library (`./src/lib.rs`, `./src/srv/`) structure
49- [x] Basic TLS certificate management
50- [x] Basic functional HTTPS server providing only GET support
51- [x] Functional websocket upgrade and javascript interaction
52- [x] Integration of database with server and websockets
53- [x] Working HTTPS server dev mode with local browser live refresh and default www tree
54- [ ] Generic SMTP, SMTPS and email library foundations in `fe2o3_net`
55- [ ] Basic functional SMTPS server with database interactivity
56- [ ] Expand HTTPS server functionality to all request types
57- [ ] Basic hardening of HTTPS server production mode with:
58 - [ ] More advanced HTTPS/TLS configuration
59 - [ ] Cross-Origin Resource Sharing (CORS) controls
60 - [ ] Integration of `AddressGuard` and `UserGuard`, e.g. rate limiting and other protections
61- [ ] Integration of email functionality with web server e.g. login via email code
62- [ ] Demonstrate a stable production HTTPS website created using Steel dev mode
63
64## Shield protocol and app: `fe2o3_shield`
65
66- [x] Split code into app and server like `fe2o3_steel`
67- [ ] Create test framework for local machine session message sequences using different ports
68- [ ] Complete handshake functionality
69- [ ] Integration of database with server
70- [ ] Create an `fe2o3_syntax` for network messages
71- [ ] Demonstrate a small peer to peer network on the open internet including discovery
72
73## Ironic app: `fe2o3_tui`
74
75- [x] Split code into app and library like `fe2o3_steel`, move app out of ./examples
76- [x] Implement more selective rendering for less flickering
77- [ ] Implement file tree functionality
78 - [x] Display static flie tree
79 - [ ] Implement key movement highlighting up and down tree
80 - [ ] Implement sub tree display show and hide
81 - [ ] Link file/directory selection to placeholder actions
82- [ ] Demonstrate development of Hematite in Ironic as a vim replacement
83
84## Cryptographic functionality: `fe2o3_crypto`
85
86- [ ] Remove all `unsafe` blocks
87- [ ] Migrate tests from Rust std to Hematite format
88