Skip to content

ultralight-ux/Ultralight

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Website | Join our Discord! | C++ API | C API | Support Docs | Twitter

Discord Chat

Got a question about Ultralight? Come chat with us on Discord!

Join the Ultralight Discord!

About

Ultralight is the ultimate solution for developers seeking to seamlessly integrate web-content into games and desktop apps. Our cutting-edge engine supports the latest HTML/CSS/JS features while remaining exceptionally lightweight in binary size and memory usage.

Key Features

1. Lightweight and Powerful:
Thanks to its dual, high-performance CPU and GPU renderers, Ultralight offers the perfect balance between performance and resource consumption, making it the go-to choice for developers who demand speed in constrained environments.
2. 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.
3. Modern HTML/JS/CSS Support:
Based on WebKit, Ultralight enjoys many of the same cutting-edge web features as Apple's Safari browser, simplifying testing and reducing production costs.
4. Deep C/C++ and JavaScript Integration:
Unlock the true potential of your applications. 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:
Tailor your integration to perfection. Ultralight allows you to override platform-specific functionality, granting you control over file-system access, clipboard management, font loading, and more to suit the unique needs of your application.

For Game Developers

Developed in collaboration with top AAA game studios, Ultralight is engineered to elevate web-content integration across a diverse set of game engine environments.

Choose between our CPU renderer for fast, reliable rendering across various architectures or our customizable GPU renderer to unlock unparalleled animation performance.

→ Learn more by visiting our Game Integration Guide.

For Desktop-App Developers

Build your native app's front-end with modern HTML/CSS/JS while harnessing 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 support two different renderers for integration into a variety of target environments.

CPU Renderer

For easy integration into games and other complex environments, Ultralight can render to an offscreen pixel buffer via a multi-threaded CPU rendering pipeline. For more info, see the Game Integration Guide.

The library can also render to a user-supplied block of memory via the Surface API (see Using a Custom Surface).

Paths, gradients, images, and patterns in this pipeline are rasterized and composited in parallel using Skia.

GPU Renderer

Our optional, high-performance GPU renderer can render HTML directly on the GPU. All painting is performed via virtual display lists and translated to your target graphics platform at runtime. For more info, see Using a Custom GPUDriver.

The GPU renderer is enabled by default when using Ultralight via the AppCore runtime.

Licensing

Free License

Ultralight is free for non-commercial use and free for commercial use by companies with less than $100K gross annual revenue. For more info see LICENSE.txt

Commercial Licensing and Support

We offer commercial licensing, priority support, and source code. To learn more, please visit our website.

Building the Samples

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

Getting the Latest SDK

You can get the latest SDK for each platform via the following links:

Getting Archived Binaries for a Specific Commit

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

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