The new standard in UI.

Ultralight is the lighter, faster option to integrate HTML UI in your C++ app.

#include <Ultralight/Ultralight.h>
int main () {
// Setup our Platform
Platform& platform = Platform::instance();
platform.set_config(Config());
platform.set_gpu_driver(new GPUDriverD3D(new D3DRenderer()));
platform.set_font_loader(new FontLoaderWin());
// Create the Renderer
Ref<Renderer> renderer = Renderer::Create();
// Create the View
Ref<View> view = renderer->CreateView(800, 600, false);
view->LoadHTML("<h1>Hello World!</h1>");
return 0;
}

Why did we build Ultralight?

What's wrong with Chromium?

Chromium is awesome, it really is. But not for embedders. Over the past 10 years it has become bloated, memory-hungry, and difficult to build much less modify. We needed something in between a huge, all-in-one browser toolkit and a bare-bones HTML UI renderer that only supports a tiny subset of HTML/CSS spec.

Lighter is better.

We started over with WebKit, stripped it to the bare-minimum, then rebuilt it from scratch with an eye towards embedding. The result is a fast, lightweight, low-memory HTML UI solution that blends the power of Chromium with the small footprint of Native UI.

Who is it for?

Ultralight is intended to be used for rendering HTML UI within games and desktop apps. The API is currently available for C++ only and requires Direct3D 11 on Windows and Metal on macOS.

Ultra-light

Only 8MB compressed, low memory usage, we've stripped WebKit to the bare essentials.

Ultra-fast

GPU-Accelerated, drivers for Direct3D, Metal, and OpenGL. Optimized for games.

Cross-platform

Write once, deploy to multiple platforms. Windows, macOS, and coming soon to Linux.

Frequently Asked Questions

What are the licensing terms?

Ultralight is free for non-commercial use, educational use, and also free for commercial use by small indie developers making less than US$100,000 a year. You can find full terms in the SDK. Pricing plans for larger commercial projects will be announced later. For more information, email us.

What about .NET support and other bindings?

Additional bindings for C, C#, .NET, Python and more are planned.

What if I don't want GPU rendering? Can I render on CPU?

We're considering releasing a SwiftShader-based CPU driver so users can render in environments that don't support GPU.

WebCore has LGPL code, how can you be closed-source?

To satisfy the licensing requirements of the LGPL license we have published our source code modifications here and made sure all WebCore code stays linked in a separate shared module.

Who is behind Ultralight?

Hi, I'm Adam Simmons. I previously wrote Awesomium and many other tools. This project is self-funded and developed using my decade of experience with Chromium, Gecko, and WebKit.

Will you support X feature?

We are happy to take feature requests (and donations too!), but please keep in mind our goal is to keep Ultralight small and focused on UI.