From fefa8ca4456a73d0b4d52056f67e1d4e181415b5 Mon Sep 17 00:00:00 2001 From: Aleteoryx Date: Fri, 22 Nov 2024 20:49:26 -0500 Subject: [PATCH] readme --- README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/README.md b/README.md index cdad263..61eca20 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,36 @@ Written in Tcl, using Jetstream. Deployed @ . + +Makes heavy use of `tcllib` and `tcltls`, both need to be installed for it to work. +Run `main.tcl` with a configured config as the argument. +All paths are resolved relative to the install directory. + +This implementation doesn't support `did:plc:` feedGenerator IDs because im too lazy. + +`bin/up.tcl` is a rough carbon copy of the `scripts/publishFeedGen.ts` present in +the official example repo. + +## Directory Structure + +- `/bin` - misc scripts +- `/lib` - code used only by `/bin` +- `/src` - application code +- `/src/algos` - algorithms, `*.tcl` is autoloaded, see `src/algos.tcl` for details. + +## Potential Improvements + +- there's something up with the websocket implementation (`src/ws.tcl`)? + we get disconnected frequently. + - `src/jetstream.tcl` solves this with reconnection code, but it doesn't + send a cursor, so posts may get missed. + - said reconnection code is god-awful, and would benefit from a refactor +- there's probably not a foolproof way to deal with the fact that TCL is + a brand, but it would be nice +- `src/httpd.tcl` is just enough webserver to handle requests, and very + little else. it's unfit for exposure to the public internet. this is + low-prio cause it works fine behind mod_proxy. +- the API for `lib/atpagent.tcl` could be nicer, but I don't feel like + doing codegen. +- `src/httpd.tcl`'s API should probably be subcommand-based instead of + token-based, to fit `lib/atpagent.tcl` -- 2.45.2