TODO (For this website's technology)
This is my list of things that need to be done for this website!
Whenever I need something to do, I will look at this list, and tick something off.
Servoidardi Core (Webserver)
Code structure
- Split services into separate repositories.
- Add preprocessor chains.
- Add directory listings as preprocessors.
- Add caching as preprocessors.
- Add postprocessor chains.
- Generalize the majority of file services as postprocessors.
Command-line options and config
- Add
--helpcommandline option. - Add
--serve-dircommandline option to serve files from a directory with no config. - Add
--override-portcommandline option to override the specified TCP port. - Add
--write-portcommandline option to use an auto-assigned port and write it to a file.
HTTP
- Use compression encoding for responses.
- Handle
PUTandPOSTrequests. - Handle persistent connections.
- Handle duplicate headers.
- In requests.
- In responses.
- Handle non-200 success responses.
- Handle
Rangeand HTTP 206.
- Handle
- When writing content, avoid excessive allocations by using
io::copy_bufinstead ofio::copywhen possible.
Performance
- Add benchmark tests.
Management and debug tools
- Add debug logging service to remotely query logs, or trigger logs of particular requests.
- Add debug config service to query the current config.
- Add debug status service to query the status of currently running services.
- Add debug statistics service.
- Add HTML UI for presenting debug information.
- Add size limits for service
Scratchpools, and configurable policies.
Servoiardi Services (Webservices)
Blog Service
- Add keyword system.
Files Services
- Add timestamps in directory listings.
- Generalize index files.
Matthewdown Files Service
- Add
?source=1option to view matthewdown source.
CSS Files Service
- Add CSS files service.
- Preprocess include directives.
- Preprocess variables.
Pastebin
- Add a pastebin service.
- Add upload from Telegram.
- Add upload from console.
- Add upload from browser.
Matthewdown (Markup language)
Language Features
- Add
[ ]checkboxes (So I can use them in this list!) - Add markdown-style photos.
- Add citations and references.
- Add code syntax highlighting.
Library Features
- Deserialize command arguments directly into types like
i32, using a common type with Metadata.
Performance
- Add benchmarks to keep track of performance.
- Rework HTML visitor to stop making copies of the string
"p"on the stack.