Skip to content

Repository files navigation

JellyFrame Render Core

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.

Build

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 benchmarks

The 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 install

The 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.

C++ Integration Surface

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.

Repository Map

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.

About

Modular HTML/CSS/DOM layout and paint core for JellyFrame.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages