Glossary

This glossary is intended to provide descriptive guidance about the meanings of technical terms commonly used in the context of Lynx development. For the latest consensus on a more formal definitions of these terms, please refer to the Lynx Living Specification.

SDK

The Lynx Software Development Kit (SDK) is a collection of tools, libraries, and APIs that enable developers to build applications for Lynx. It encapsulates two distinct layers -- one native layer: the Engine, and one scripting (or frontend) layer: the Framework.

Engine

The part of the SDK that is responsible for converting Lynx pages into pixels onther screen, and provides APIs that forms the Lynx Platform.

It is written as a C++ core along with platform-specific layers written in platform native languages (e.g. Objective-C for iOS, Java/Kotlin for Android, etc.), ensuring high performance and access to underlying system resources, and needs to be integrated natively and shipped together with the host application.

Framework

The part of the SDK that offers the runtime libraries and high-level UI programming model that enable Lynx application developers to write application logic and UI components. It is written in JavaScript and is loaded together with the application code on-demand from the file system or memory.

The Lynx Platform

Similar to the Web Platform, the Lynx Platform is the set of APIs and functionalities, e.g. Elements, Events, Styles, Scripting Runtime Environment, etc., offered by the Lynx Engine to the scripting developers.

Template

Template is the historical name of bundle of compiled code loaded by Lynx engine to power the execution of a Lynx page (or application).

We may investigate a better name for it in the future.

Element

Event

Style

Scripting Runtime Environment

Scripting is the process where developers program a script.

A scripting runtime environment is used to execute scripts with a scripting engine. In the context of Lynx, there are currently two types of scriping and so correspondingly, two types of scripting runtime environment.

Background Thread

Background threads are threads that are not the main thread. They are used to execute background scripts.

Main Thread

The main thread, or the "lynx main thread", is where Lynx processes user events and emit "paints". By default (the default threading model of Lynx), the Lynx engine uses a single thread to run main thread scripts, as well as to perform layout, paints, etc.. This means that long-running main thread scripts can block the thread, leading to an unresponsive page and a bad user experience.

JS Thread

The word historically used to refer to the background thread. It is deprecated because it is not clear which thread it refers to as Lynx is now capable of running JavaScript on the main thread via main thread scripts.

UI Thread

The thread corresponds to the physical thread regarded as the main thread of the underlying platform (OS). Similar to Web, the main thread of Lynx does not necessarily map directly to the UI thread, depending on Lynx's threading model.

Lepus

Lepus VM

PrimJS VM

Except as otherwise noted, this work is licensed under a Creative Commons Attribution 4.0 International License, and code samples are licensed under the Apache License 2.0.