TQL - zwettemaan/TightenerDocs GitHub Wiki

Embedded inside of Tightener is a little language, TQL (Tightener Query Language), pronounced 'Tickle'.

TQL is loosely based on JavaScript, but greatly simplified. It has objects and functions, but it has no concept of prototypes. There is a form of inheritance at the object-level.

Its main function is to allow for efficient interactions between Tightener nodes.

Tightener is all about Tightener nodes interacting and exchanging data.

For example, we could have InDesign with an embedded Tightener node interacting with Python with an embedded Tightener node, and both nodes are separated by a network connection.

When querying the InDesign DOM from the Python node, we want to avoid frequent ping-pong across the wire. Hence, TQL: the Python node would formulate TQL queries, send them to the InDesign node which resolves them, and the results are sent back.

TQL is embedded into Tightener and is not based on any external frameworks - there are no external dependencies to deal with when compiling a Tightener node implementation. All it needs is C++ 11 and the C++ standard library.

TQL Syntax

TQL Selectors and Queries