Last updated: 2026-08-19; Applies to: 0.6.1
JellyFrame Render Core is a platform-neutral, modular HTML/CSS subset, document/layout pipeline and CPU software renderer for bounded embedded and desktop hosts. It does not include the JellyFrame App Runtime, JerryScript, ports, launchers, device protocols or vendor SDKs.
With CMake 3.20+ and Ninja available, presets make the default or smallest supported profile one command away:
cmake --preset default
cmake --build --preset default
cmake --preset minimal
cmake --build --preset minimal
cmake --preset benchmarks
cmake --build --preset benchmarksThe following explicit commands remain compatible with the minimum required CMake version and are useful when a host selects its own generator:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
ctest --test-dir build --output-on-failure
cmake --install build --prefix installThe install exports JellyFrame::jellyframe_render_core, public headers, a
feature profile and a deterministic source manifest. Optional build families
are selected with JELLYFRAME_ENABLE_CANVAS2D,
JELLYFRAME_ENABLE_MODERN_PAINT, JELLYFRAME_ENABLE_FLEX_GRID and
JELLYFRAME_ENABLE_ADVANCED_FORMS. The optional
JELLYFRAME_BUILD_BENCHMARKS target builds the platform-neutral
jellyframe_render_core_microbench executable; it is off by default and has
no effect on the library profile.
For Core ABI 1, every installed header below render_core/ is part of the
supported C++ integration surface. A host includes those installed paths and
links JellyFrame::jellyframe_render_core; it must not include Core files by
repository-relative src/ paths or compile Core source files itself. This is
the boundary used by JellyFrame Runtime and verified by an independent package
consumer regression.
The package does not currently define a separate stable C ABI or a hidden
private-header tier. Before 1.0, deliberate source API replacement is
allowed only with an explicit version/ABI decision and a package-consumer
regression update; it is not silently covered by compatibility aliases.
The source manifest is an integrity/provenance identity for the source files; it is not a signature or release authority. Consumers should lock both package version and engine ABI according to their own compatibility policy.
The JellyFrame Runtime repository owns App packages, JerryScript integration, desktop tooling and device-layer documentation.
| Path | Contents | Primary audience |
|---|---|---|
include/render_core/ |
Installed C++ headers and the supported ABI surface | Core hosts and package consumers |
src/ |
Render Core implementation, grouped by pipeline responsibility in file names | Core maintainers |
tests/unit/ |
Platform-neutral C++ regression suite | Core maintainers |
tests/render_core_source_archive_tests.py |
Archive reproducibility, extraction, build and install regression | Release maintainers |
docs/ |
Architecture, release policy and subsystem reference | Integrators and maintainers |
samples/ |
Standalone HTML/CSS and bitmap-font fixtures | Visual reviewers |
benchmarks/ |
Platform-neutral microbenchmarks | Performance work |
tools/ |
Release-source packaging utility | Release maintainers |
The repository intentionally has no device ports, App packages, JavaScript runtime or launcher implementation. Those belong to the JellyFrame Runtime or Device OS layers.