/Ultralight

Lightweight, high-performance HTML renderer for game and app developers.

Primary LanguageCMake

Website | Chat on Discord! | Browse C++ API | Browse C API | Support Docs | Twitter

🎮 Discord Chat

Got a question about Ultralight? Chat with us on Discord!

⭐ About

Ultralight makes it easy for C/C++ developers to seamlessly integrate web-content into games and desktop apps.

Use our lightweight, high-performance renderer to display HTML/JS/CSS on a variety of platforms and hardware targets.

Key Features

1. ⚡ Modern HTML/JS/CSS Support:
Based on WebKit, Ultralight enjoys many of the same cutting-edge web features as Apple's Safari browser, simplifying development and reducing production costs.
2. ✨ Powerful and Lightweight:
Thanks to its highly-customizable CPU and GPU renderers, Ultralight offers developers unprecedented control over performance and memory usage-- making it the go-to choice for users who demand speed in constrained environments.
3. 🧩 Cross-Platform Compatibility:
With support for Windows, macOS, Linux, Xbox, PS4, and PS5 (and ARM64 coming in 1.4), Ultralight ensures your content displays smoothly and consistently on a wide range of platforms and hardware targets.
4. 🔁 Deep C/C++ and JavaScript Integration:
Ultralight facilitates seamless C/C++ and JavaScript integration through direct access to the JavaScriptCore API. Expose native state to web pages, extend JavaScript classes, define C/C++ callbacks, and more.
5. 🔧 Low-Level Customization:
Ultralight allows developers the ability to override platform-specific functionality-- granting control over such things as file-system access, clipboard management, font loading, and more to suit the unique needs of each target environment.

👾 For Game Developers

Developed in collaboration with top AAA game studios, Ultralight is engineered to display high-performance web-content across a diverse set of hardware targets and game engine environments.

Choose between our CPU renderer for fast, reliable rendering or our customizable GPU renderer for unparalleled animation performance.

→ Learn more by visiting our Game Integration Guide.

🖥️ For Desktop-App Developers

Get the best of both worlds-- save time by building your front-end with HTML/CSS/JS while retaining the power and performance of C/C++.

Embed the renderer directly within your existing run loop or leverage our AppCore framework to do all the heavy lifting for you, offering convenient native window management and accelerated rendering.

→ Learn more by visiting our Desktop App Guide.

🏛️ Architecture

Ultralight is a platform-agnostic port of WebKit for games and desktop apps.

Portions of the library are open-source, here's how the library is laid out:

Description License Source Code
UltralightCore Low-level graphics renderer Proprietary (Available with license)
WebCore HTML layout engine (WebKit fork) LGPL/BSD ultralight-ux/WebCore
Ultralight View, compositor, and event logic Proprietary (Avaiable with license)
AppCore ✨ Optional, desktop app runtime LGPL ultralight-ux/AppCore

🚀 Dual High-Performance Renderers

We offer two different renderers for integration into a variety of target environments.

❇️ CPU Renderer ✳️ GPU Renderer
  • Fast, lightweight, and easy to integrate.
  • Renders to a 32-bit BGRA pixel buffer.
  • Based on Skia, accelerated via multi-threaded SIMD.
  • See the Game Integration Guide for more info.
  • High-performance, customizable, and portable.
  • Renders on the GPU to a texture.
  • Accelerated via tesselated geometry and pixel shaders.
  • See Using a Custom GPUDriver for more info.

🔒 Licensing

It's easy to license Ultralight in projects big and small.

😍 Free License 👑 Commercial License
  • Free for non-commercial use.
  • Free for commercial use by indie companies (< $100K annual revenue).
  • Full SDK available for all users, download and try now.
  • See LICENSE.txt for more info.
  • Paid licenses for commercial use.
  • Enterprise licensing, custom contracts, and volume discounts available.
  • Performance tools, extra configurations, and source code.
  • See our website for more info.

👀 Getting the Latest SDK

You can get the latest SDK for each platform below (contact us for Xbox, PS4, and PS5):

Getting Archived Binaries for a Specific Commit

Pre-built binares are uploaded to the following S3 buckets every commit:

🛠️ Building the Samples

To build the samples in this repo, please follow the instructions here.

ℹ️ Useful Links

Link URL
Join our Discord! https://chat.ultralig.ht
Docs / Getting Started https://docs.ultralig.ht
Browse C++ API https://ultralig.ht/api/cpp/1_3_0/
Browse C API https://ultralig.ht/api/c/1_3_0/
Follow Us on Twitter https://twitter.com/ultralight_ux