Expand description
What gled’s user interfaces and its engine send each other: actions that change the show, and the messages of the connection between them. Shared by the engine, the desktop app and the browser interface, so it compiles for the web.
Modules§
- action
- Actions: every change to the show, from any source. User interfaces, OSC and MIDI enqueue them; the engine applies them.
- assets
- The asset collections on the wire. An interface gets every asset when it connects, then only the assets that changed or were deleted. It saves and deletes assets through the engine, which writes them to the repository.
- bytes
- Bytes that MessagePack sends as one binary blob instead of a list of numbers, shared so a frame is not copied for every client.
- codec
- Messages on the wire: MessagePack with field names, so a field added with
#[serde(default)]keeps older peers working the same way as the JSON asset files do. - message
- The messages of a connection between a remote user interface and the
engine, over a WebSocket. The interface opens with
Hello; the server answersWelcomeorRejected, then sends the state whenever it changes. - midi
- MIDI tools of the interface that run in the engine: the monitor of incoming traffic and the test outputs for configuring controllers.
- project_
update - Project changes on the wire. A whole project is around 50 KB, mostly the SVG and the scene grid; an edit usually touches one scene. So after the first full state, an interface gets only the scenes that changed, the SVG when it changed, and the rest of the project when any of it changed.
- replica
- What a remote interface knows of the engine, rebuilt from the server’s messages.
- state
- What the engine publishes to its user interfaces, and what they send it
besides actions. In-process the desktop app gets these over channels;
remote interfaces get them as
messages.