Commit Graph

11 Commits

Author SHA1 Message Date
Přemysl Eric Janouch c58b772905
xP: use the correct log function 2023-01-25 00:28:03 +01:00
Přemysl Eric Janouch 9dc3dd02f3
xP: disable WebSocket compression on Safari
Wildly known to be broken.
2022-10-04 01:17:35 +02:00
Přemysl Eric Janouch 6f39aa6615
xP: use the binary protocol for incoming events
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.
2022-09-16 00:51:11 +02:00
Přemysl Eric Janouch 92f2f6895b
xP: use buffered reads 2022-09-14 07:11:05 +02:00
Přemysl Eric Janouch c1d2e38840
xP: generate our own JSON marshallers
For non-trivial types, which are expensive to serialize
with encoding/json's struct reflection.
2022-09-14 06:56:36 +02:00
Přemysl Eric Janouch fa85ea8208
xP: parallelize event reception and sending
Still trying to make the frontend load tolerably fast,
still unsuccessfully.
2022-09-14 06:56:36 +02:00
Přemysl Eric Janouch b728235b6c
xP: move to a WebSocket package with compression
Compression happens to be broken in Safari,
though luckily there are friendlier browsers one can use.
2022-09-14 06:56:35 +02:00
Přemysl Eric Janouch 8c8e06b015
xP: enhance mobile experience
The left column used to jump around, and phones were near-unusable.
2022-09-08 17:11:10 +02:00
Přemysl Eric Janouch d7b6967b6f
xP: allow setting a fixed WS URI
For reverse proxies.
2022-09-08 17:11:01 +02:00
Přemysl Eric Janouch aceac26cbb
Fix up xP's module path, mention the licence 2022-09-05 23:07:20 +02:00
Přemysl Eric Janouch 1639235a48
Start X11 and web frontends for xC
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.
2022-09-05 14:26:00 +02:00