How lynx-family/lynx works
Lynx is a cross-platform UI engine: an embedding application loads a template, the engine updates and lays out the page, and a rendering backend produces native UI. The README also describes native Android/iOS/web targets and a custom renderer; this tree samples Clay rendering and some platform adapters, but not the full template/runtime or web implementations. The graph therefore includes documented capabilities while limiting detailed wiring to relationships supported by the excerpts.
Main entry points: lynx_engine.cc LynxEngine · engine.cc Clay Engine · pipeline Element and layout · drag_drop_manager.cc Drag and drop
Components 20
Engine and pipeline
- LynxEngine
core/shell/lynx_engine.cc - Template processing
core/renderer/pipeline - Pipeline context
core/renderer/pipeline - Element and layout
core/renderer/pipeline
Rendering
- Clay Engine
clay/shell/common/engine.cc - Layer tree
clay/flow/layers/layer_tree.h - Compositor
- Graphics backend
clay/common/graphics/gl/gl_api.h - Drag and drop
clay/ui/gesture/drag_drop_manager.cc
Platform integration
- Android engine proxy
core/shell/android/lynx_engine_proxy_android.cc - iOS list UI
platform/darwin/ios/lynx/public/ui/list/list_light/ui/LynxUIListScrollManager.h - iOS cell cache
platform/darwin/ios/lynx/ui/list/list_light/view/LynxListCachedCellManager.h - Windows engine
clay/shell/platform/windows/flutter_windows_engine.cc
Runtime foundation
- Task runtime
base/include/fml/task_runner.h - Value types
base/include/value/base_value.h
Other components
- Embedding app
- Native platforms
- Web target
Connections 21
- Embedding app → LynxEngine: loads template
- LynxEngine → Template processing: loads and updates
- LynxEngine → Element and layout: requests layout
- LynxEngine → Pipeline context: sets pipeline options
- LynxEngine → Task runtime: dispatches tasks
- Pipeline context → Element and layout: tracks lifecycle
- LynxEngine → Android engine proxy: exposes engine calls
- Android engine proxy → LynxEngine: dispatches callbacks
- iOS list UI → iOS cell cache: manages list cells
- Embedding app → Clay Engine: embeds renderer
- Clay Engine → Layer tree: begins frame
- Clay Engine → Compositor: rasterizes frames
- Compositor → Graphics backend: uses graphics
- Drag and drop → Value types: builds event data
- Drag and drop → Element and layout: routes by view
- Windows engine → Clay Engine: hosts engine
- Native platforms → LynxEngine: runs natively
- Native platforms → Clay Engine: uses custom renderer
- Web target → Embedding app: shares codebase
- LynxEngine → Tracing: emits trace events
- LynxEngine → Logging: logs diagnostics