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 | |
| 3 | This 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 |