summaryrefslogtreecommitdiff
path: root/xP/xP.go
Commit message (Collapse)AuthorAgeFilesLines
* xP: use the binary protocol for incoming eventsPřemysl Eric Janouch2022-09-161-40/+82
| | | | | | | | | | | | | | And batch event messages together as much as possible. JSON has proven itself to be really slow (for example, encoding/json.Marshaler is a slow interface), and browsers have significant overhead per WS message. Commands are still sent as JSON, sending them in binary would be a laborious rewrite without measurable merits. The xP server now only prints debug output when requested, because that was another source of major slowdowns.
* xP: use buffered readsPřemysl Eric Janouch2022-09-141-4/+6
|
* xP: generate our own JSON marshallersPřemysl Eric Janouch2022-09-141-3/+3
| | | | | For non-trivial types, which are expensive to serialize with encoding/json's struct reflection.
* xP: parallelize event reception and sendingPřemysl Eric Janouch2022-09-141-54/+92
| | | | | Still trying to make the frontend load tolerably fast, still unsuccessfully.
* xP: move to a WebSocket package with compressionPřemysl Eric Janouch2022-09-141-12/+32
| | | | | Compression happens to be broken in Safari, though luckily there are friendlier browsers one can use.
* xP: enhance mobile experiencePřemysl Eric Janouch2022-09-081-0/+1
| | | | The left column used to jump around, and phones were near-unusable.
* xP: allow setting a fixed WS URIPřemysl Eric Janouch2022-09-081-3/+10
| | | | For reverse proxies.
* Fix up xP's module path, mention the licencePřemysl Eric Janouch2022-09-051-0/+3
|
* Start X11 and web frontends for xCPřemysl Eric Janouch2022-09-051-0/+186
For this, we needed a wire protocol. After surveying available options, it was decided to implement an XDR-like protocol code generator in portable AWK. It now has two backends, per each of: - xF, the X11 frontend, is in C, and is meant to be the primary user interface in the future. - xP, the web frontend, relies on a protocol proxy written in Go, and is meant for use on-the-go (no pun intended). They are very much work-in-progress proofs of concept right now, and the relay protocol is certain to change.