You do not have permission to edit this page, for the following reasons:
What: Choose a value or type a new one.
Protocol
Author(s):
Andrew Plotkin
Implements: Another architecture item. For example, Blorb is a format based on IFF.
Home page:
Development website:
Formally specified:
No answer/unknown Yes No
Version:
Date:
JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember
File extension(s):
MIME type(s):
Free text:
The '''GlkOte Protocol''' is a communications protocol designed for parser IF. Originally implemented as part of [[GlkOte]], it allows for most of the [[Glk]] API to be transmitted between processes or across a network. The protocol has a server which sends the output as JSON, and a client which sends back player input events, again as JSON. [[RemGlk]] and [[GlkOte]] were conceived together, the two allowing for remote network access to an IF interpreter (hence their names). But the protocol in practice is usually used locally, such as GlkApi, GlkOte's Javascript counterpart of RemGlk, as used in [[Quixe]], or even by compiling RemGlk to WASM as in [[Emglken]]. GlkOte is the most common client (or [[AsyncGlk]]'s WebGlkOte), but other clients include the testing framework [[RegTest]]. [[Lectrote]] also uses the protocol for its [https://intfiction.org/t/lectrote-1-5-0-now-with-automatic-transcripting/71346 automatic transcripts]. == Extensions == Beyond what is supported by the original RemGlk and GlkOte, [[RemGlk-rs]] and [[AsyncGlk]] support: * Glk stylehints * Glk sound functions * [[Gargoyle]]'s text formatting extension == Specification == The protocol was originally specified in [https://eblong.com/zarf/glk/glkote/docs.html GlkOte's documentation]. It has also been described using [https://github.com/curiousdannii/asyncglk/blob/master/src/common/protocol.ts TypeScript interfaces] or [https://github.com/curiousdannii/remglk-rs/blob/master/remglk/src/glkapi/protocol.rs Rust structures].