Git Product home page Git Product logo

ultralight's Introduction

Website | Join our Slack! | Browse API | Quick Start / Documentation | Follow on Twitter

About

Ultralight is a lightweight, cross-platform, pure-GPU, HTML rendering engine for desktop apps and games. It supports most modern HTML5 and JavaScript features while still remaining small in binary size and memory usage.

API is currently available for C and C++, with bindings for more languages in development.

Base Memory Usage

Ultralight Electron
Windows 9 MB 72 MB
macOS 17 MB 97 MB
Linux 15 MB 136 MB

Base Distributable Size

Ultralight Electron
Windows 30 MB 147 MB
macOS 43 MB 163 MB
Linux 49 MB 179 MB

Comparison with Chromium

Ultralight Chromium
Renderer Proprietary (GPU) Skia (CPU) / GPU Compositor
Layout Engine WebCore (from WebKit) Blink
JavaScript Engine JavaScriptCore V8
IPC None (Single Process) Yes (Multi Process)

Architecture

Ultralight is a new port of WebKit combined with a new 2D GPU renderer intended specifically for embedding in apps and games.

Virtual GPU Renderer

The renderer emits virtual GPU commands that are translated into native GPU commands of the target platform at runtime. This approach makes it easy to embed Ultralight in games as well.

Low-Level Platform API

Ultralight grants developers the ability to override low-level system calls for deeper integration with applications. We currently provide APIs to customize File System and Font Loading but will soon be expanding this to Clipboard, Memory Allocation, Network Requests, and more.

Cross-Platform AppCore Runtime

AppCore is an optional, cross-platform desktop app runtime built on top of Ultralight that handles window creation, native event loops, native graphics drivers (D3D11, D3D12, Metal, OpenGL), and more.

You can use it to build desktop HTML apps in a manner similar to Electron. It's currently under active development and only supports single-window apps at this writing. A number of planned features (app icons, automatic packager, borderless windows with custom draggable titlebars, etc) are missing but on the way.

Usage Within Games

Ultralight is designed to integrate well into existing game engines. In this case you would just use the low-level Ultralight API (not AppCore) and implement the GPUDriver interface for your target platform (we recommend using the drivers and shader code in the AppCore repo as a base).

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.

Getting the Latest SDK

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

Debug packages are also available below:

Note: Full debug symbols are only provided for WebCore and AppCore modules.

Getting Pre-Built Binaries for a Specific Commit

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

Click any of the links for an XML listing of available files.

Useful Links

Link URL
Join our Slack! https://chat.ultralig.ht
Browse API Headers https://github.com/ultralight-ux/Ultralight-API/
Docs / Getting Started https://docs.ultralig.ht
Follow Us on Twitter https://twitter.com/ultralight_ux

ultralight's People

Contributors

adamjs avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.