Skip to content

ovsky/Ultralight-WebBrowser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Ultralight Web Browser โœจ

Ultraโ€‘fast / Ultraโ€‘light / Ultraโ€‘portable

Build - All (x64 + ARM64) Build - Linux (x64) Build - Linux (ARM64) Build - macOS (x64) Build - macOS (ARM64) Build - Windows (x64)

Ultralight Logo

A native C++ proofโ€‘ofโ€‘concept browser focused on minimal overhead, coldโ€‘start speed, and resource efficiency.
No multiโ€‘process bloat, no background daemons, no gigabytes of RAM for a handful of tabsโ€”just a lean renderer + native UI.

Download: Ultralight Web โ†’ Browser Releases Page | Status: Development / Experimental / Educational


ultralight-downloads

๐Ÿงญ Table of Contents

  1. Why Ultralight?
  2. Project Philosophy & Goals
  3. Supported Platforms & Architectures
  4. Get the App
  5. Installation
  6. Features
  7. Recent Updates
  8. Tech Stack
  9. Build From Source
  10. ARM64 Build Notes
  11. JavaScript Bridge API
  12. Create Packages Locally
  13. CI / Automation
  14. Roadmap
  15. Troubleshooting
  16. Contributing
  17. Security & Privacy
  18. License
  19. Acknowledgements
  20. Disclaimer

๐Ÿš€ Why Ultralight? Ditch the Bloat

Traditional browsers (and desktop web stacks like Electron / CEF) embed full, sandboxed operating systems (Chromium). They are powerfulโ€”but heavy. This project explores how far you can go by combining a lightweight GPU renderer with a native shell for a dramatically smaller footprint and nearโ€‘instant startup.

Memory Comparison

Result: lower memory pressure, nearโ€‘instant cold starts, smaller footprint, simple embedding, and much more.


๐ŸŽฏ Project Philosophy & Goals

Feature Ultralight (This Project) Electron / CEF
Performance โšก Up to 6ร— faster in simple page render ops Chromium baseline CEF
Memory Usage ๐Ÿง  ~1/10 RAM (no multi-process sandbox) High (multi-process JS + GPU + Extensions)
Startup ๐Ÿš€ < 1s typical 3โ€“5s cold start
Disk Footprint ๐Ÿ“ฆ ~30โ€“50 MB packaged 1+ GB (runtime + Cache)
Rendering ๐ŸŽจ Lightweight GPU Full Chromium CEF Stack
Architecture ๐Ÿงฑ Native C++ + pixel buffer compositing Node.js + Chromium + Interop Bridge

Goals:

  • Showcase minimal native browser shell design.
  • Provide reference for Ultralight SDK Browser.
  • Preliminary lightweight content / ad-block / tracking-block.
  • Highlight performance vs conventional heavy frameworks.

๐Ÿ–ฅ๏ธ Supported Platforms & Architectures

Platform Architectures CI Artifacts Notes
Windows 10/11+ x64 Portable ZIP, optional NSIS installer ARM64 SDK not yet published by Ultralight
macOS 12+ x64, arm64 TGZ, optional DMG ARM64 autoโ€‘detected when runner host is ARM64
Linux (Ubuntu/Fedora etc.) x64, arm64 TGZ / DEB / RPM ARM64 requires aarch64 runner; workflow automatically includes detection & fallback

ARM64 archives are probed automatically when available in the base-sdk branch (eg: ultralight-free-sdk-<ver>-linux-arm64.7z, ...-mac-arm64.7z). Current public CI uses x64 runners; arm64 builds may require:

  • Selfโ€‘hosted runner (Apple Silicon / aarch64 Linux)
  • Future strategy matrix addition (see CI section)

๐Ÿ“ฅ Get the App

Official tagged releases: ๐ŸŽ‰ Ultralight Web โ†’ Browser Releases Page

Development (continuous) artifacts (latest successful dev workflow runs):

Platform Architectures Packages Latest Runs
Linux x64, arm64* TGZ, DEB, RPM Open runs
macOS x64, arm64 TGZ, DMG Open runs
Windows x64 ZIP (portable) / optional Installer Open runs

Notes:

  • โœ… Linux AMD64 artifacts appear when an x64 runner is used or when ULTRALIGHT_SDK_URL points to an AMD64 SDK.
  • โœ… Linux ARM64 artifacts appear when an aarch64 runner is used or when ULTRALIGHT_SDK_URL points to an arm64 SDK.
  • โœ… Windows AMD64 artifacts appear when an aarch64 runner is used or when ULTRALIGHT_SDK_URL points to an arm64 SDK.
  • โœ… macOS ARM64 artifacts are produced automatically when the CI runner is Apple Silicon.
  • โœ… macOS AMD64 artifacts appear when an x64 runner is used or when ULTRALIGHT_SDK_URL points to an AMD64 SDK.
  • ๐Ÿ•’ Windows ARM64 artifacts are not yet published by Ultralight [SOONโ„ข].

How to fetch artifacts:

  1. Open the workflow link for your platform/arch.
  2. Click the latest green run (success).
  3. Scroll to โ€œArtifactsโ€ (bottom) and download the desired archive.

๐Ÿ“ฅ Installation

๐ŸŸฆ Windows

Installer:

  1. Download Ultralight-WebBrowser-Installer.exe from Releases
  2. Install it and get happy!

Portable:

  1. Download c from Releases
  2. Extract to any folder
  3. Run Ultralight-WebBrowser.exe

Optional: Use the NSIS installer (*-Windows-Installer.exe) if available.


๐ŸŽ macOS

TGZ Archive:

tar -xzf Ultralight-WebBrowser-*.tar.gz
./Ultralight-WebBrowser

DMG Image:

  1. Mount the DMG
  2. Drag to Applications
  3. Right-click โ†’ Open (first launch, to bypass Gatekeeper)

๐Ÿง Linux

Debian/Ubuntu (DEB):

sudo apt install ./Ultralight-WebBrowser-*.deb
ultralight-webbrowser

Fedora/RHEL (RPM):

sudo dnf install ./Ultralight-WebBrowser-*.rpm
ultralight-webbrowser

Portable (TGZ):

tar -xzf Ultralight-WebBrowser-*.tar.gz -C ~/.local/opt
~/.local/opt/UltralightWebBrowser/Ultralight-WebBrowser

โœจ Features

Core Browser Functionality

  • GPUโ€‘Accelerated Rendering โ€“ Powered by Ultralight core engine
  • Low Memory Footprint โ€“ Single process shell architecture (~1/10 RAM vs. Electron)
  • HTML5 / CSS3 / Modern JS Support โ€“ Full web standards compliance
  • Multiโ€‘Tab Interface โ€“ Chrome-style draggable tabs with smooth animations
  • Navigation Controls โ€“ Back / Forward / Reload / Stop / Address bar
  • Dynamic Page Indicators โ€“ Real-time title updates and loading states
  • Responsive Resize โ€“ Fluid layout adaptation

Privacy & Security

  • Lightweight Ad & Tracker Filtering
    • Domain + substring + glob pattern matching
    • Rule sources: assets/blocklist.txt + all .txt in assets/filters/
    • Formats: example.com, 0.0.0.0 example.com, ||example.com^, /ads.js, *://*/*analytics*.js
    • Always allowed: file://, data:
    • Toggle via toolbar icon or Settings
    • Requires SDK network interception capabilities
  • Location Spoofing โ€“ Override geolocation with custom coordinates
    • Configurable latitude/longitude values
    • Preset city buttons (New York, London, Tokyo, Sydney, Paris)
    • Per-site geolocation override via JavaScript injection
  • Do Not Track (DNT) โ€“ Configurable header setting
  • Clear History on Exit โ€“ Optional automatic cleanup
  • Web Security Controls โ€“ JavaScript, cookies, storage permissions

User Interface & Experience

  • Modern Glassmorphic Design โ€“ Semi-transparent overlays with backdrop blur
  • Dark Mode โ€“ Global theme toggle with persistent preferences
  • Compact Tabs Mode โ€“ Space-saving layout (60px UI height, 12em tab width)
  • Toolbar Icons โ€“ Quick access to Inspector, Downloads, AdBlock, Menu
  • Bookmark System โ€“ Save favorite sites with toolbar star icon and bookmarks bar
  • Bookmark Manager โ€“ Organize bookmarks with folder support and quick access
  • Download Manager โ€“ Full-featured UI with progress tracking and notifications
    • WebP to PNG conversion โ€“ Automatic conversion of downloaded WebP images
    • Configurable download location prompts
    • Download history and status tracking
  • Settings Panel โ€“ Comprehensive configuration across 7+ categories:
    • Appearance (Dark Mode, Vibrant Window, Transparent Toolbar, Compact Tabs)
    • Privacy & Security (AdBlock, Trackers, JavaScript, Web Security, Cookies, DNT, History, Location Spoofing)
    • Address Bar & Suggestions (Autocompletion, Favicons)
    • Downloads (Badge, Auto-open Panel, Ask Location, WebP to PNG Conversion)
    • Performance (Smooth Scrolling, Hardware Acceleration, Local Storage, Database)
    • Accessibility (Reduce Motion, High Contrast, Caret Browsing)
    • Developer (Remote Inspector, Performance Overlay)
    • DRM Content (DRM WebView toggle for protected content)
  • Settings Search โ€“ Quick search to find specific settings
  • Auto-Save Settings โ€“ Automatic persistence of preference changes
  • Custom User Agent โ€“ Configurable browser identification string
  • Persistent Settings โ€“ JSON-based storage with runtime updates
  • Context Menu โ€“ Right-click actions and shortcuts
  • Keyboard Shortcuts โ€“ Customizable shortcut mapping system
  • Favicon Support โ€“ Site icons in tabs and suggestions
  • Autosuggestion โ€“ Intelligent URL/search completions with popular sites

DRM Content Support (Experimental)

  • DRM WebView Subsystem โ€“ Platform-native WebView for DRM-protected content
    • Windows: WebView2 (Edge/Chromium) integration
    • macOS: Native WKWebView with Cocoa/WebKit frameworks
    • Linux: WebKit2GTK integration
  • Automatic Fallback โ€“ Seamless switching between Ultralight and native WebView
  • DRM Status Indicators โ€“ Visual feedback for DRM content detection
  • Per-Platform Optimization โ€“ Native framework integration for best performance

Developer Features

  • JavaScript โ†” Native Bridge โ€“ window.__ul API for deep integration
  • Local History API โ€“ In-memory browsing history (non-persistent by default)
  • Shortcut Mapping โ€“ JSON-based keyboard shortcut configuration
  • Debug Panel โ€“ Runtime settings inspection and diagnostics

๐Ÿ†• Recent Updates

v0.9.6 (In Development)

New Features

  • Location Spoofing โ€“ Override browser geolocation with custom coordinates
    • Configurable latitude/longitude in Settings โ†’ Privacy
    • Preset city buttons: New York, London, Tokyo, Sydney, Paris
    • JavaScript geolocation API override for privacy protection
  • WebP to PNG Conversion โ€“ Automatic conversion of downloaded WebP images
    • Windows Imaging Component (WIC) based conversion
    • Toggle in Settings โ†’ Downloads
    • Preserves original filename with PNG extension
  • Session Restore โ€“ Restore tabs and state from previous browsing session
  • Password Manager โ€“ Secure credential storage and autofill

Improvements

  • Enhanced download manager with format conversion support
  • Expanded settings catalog (30+ options)
  • Improved privacy controls with geolocation override

v0.9.5 (Previous Release)

Major Features

  • Dark Mode โ€“ Global theme toggle with persistent preferences
  • Settings Panel โ€“ 26+ configurable options across 7 categories
  • Download Manager โ€“ Full-featured UI with progress tracking
  • ARM64 Support โ€“ Native builds for Apple Silicon and ARM Linux
  • URL Suggestions โ€“ Intelligent autocompletion with popular sites
  • Quick Inspector โ€“ Built-in development tools
  • Keyboard Shortcuts โ€“ Customizable shortcut mapping system

Earlier Merged Features (dev โ†’ main)

PR #45: Implement Features from Dev into Main

Major feature sync bringing all development improvements to the stable branch.

PR #43: Fully Functional Compact Tabs

  • Dynamic compact tabs mode with live toggle
  • No restart required for layout changes
  • Improved tab reload and settings mutation handling

PR #42: Settings Auto-Save Functionality

  • Automatic saving of settings changes
  • Toggle option for auto-save behavior
  • Seamless preference persistence

PR #41: Custom User Agent Setting

  • Configurable browser User-Agent string
  • New UI handling for setting changes
  • Enhanced request customization

PR #40: Icons Bar Styles Fix

  • Fixed toolbar icon styles and transitions
  • Improved download icon behavior
  • Polished visual feedback

PR #39: General Project Optimization

  • NSIS path detection improvements
  • PowerShell environment variable fixes
  • Windows CI workflow enhancements

Current Development (feature/drm-subsystem-implementation)

  • DRM WebView Subsystem โ€“ Cross-platform native WebView integration
  • Bookmark System โ€“ Full bookmark management with toolbar integration
  • Settings Search โ€“ Quick-find functionality for settings panel
  • CI/CD Improvements โ€“ Full ARM64 support for Linux and macOS

๐Ÿ› ๏ธ Tech Stack

Component Technology
Renderer Ultralight SDK
Language C++17, Objective-C++ (macOS)
Window/Input GLFW
Graphics OpenGL 3.3
Build System CMake + CPack
CI/CD GitHub Actions (x64 + ARM64)
DRM (Windows) WebView2 (Edge/Chromium)
DRM (macOS) WKWebView (Cocoa/WebKit)
DRM (Linux) WebKit2GTK

๐Ÿ—บ๏ธ Roadmap

โœ… Complete

  • GPU-Accelerated Rendering
  • Multi-Tab Interface
  • Ad & Tracker Blocking
  • Download Manager
  • Settings Panel (30+ options)
  • Dark Mode & Themes
  • DRM WebView (all platforms)
  • ARM64 Support
  • Auto-Save Settings
  • Custom User Agent
  • Settings Search
  • Compact Tabs Mode
  • Location Spoofing
  • WebP to PNG Conversion
  • Session Restore
  • Password Manager
  • Extension/Plugin API
  • Persistent History

๐Ÿšง In Progress

  • Bookmark System + Import/Export
  • Directories Organization
  • Accessibility Enhancements
  • Performance Optimizations
  • Tab Groups

๐Ÿ”ฎ Planned

  • Multi-Profile Support (?)
  • Reader Mode
  • Screenshot Tool (?)
  • Custom Themes
  • Sync Service (?)
  • DRM Detection Improvements

๐Ÿ”ง Troubleshooting

Common Issues
Issue Solution
Blank window Verify OpenGL 3.3 support; check library files
Settings not loading Check setup/settings.json exists and is valid JSON
AdBlock not working Ensure SDK supports network interception
DRM not playing Enable in Settings โ†’ DRM Content
DRM WebView crash (macOS) Ensure Cocoa/WebKit frameworks available
DRM WebView crash (Linux) Install libwebkit2gtk-4.1-dev
macOS Gatekeeper Right-click โ†’ Open (first launch)
Bookmarks not saving Check write permissions for storage directory
Debug Tips
  1. Launch from terminal to see initialization logs
  2. Enable Performance Overlay in Settings โ†’ Developer
  3. Delete setup/settings.json to reset to defaults
  4. Check assets/blocklist.txt for filter syntax errors
  5. Verify SDK presence in data/ or ULTRALIGHT_SDK_ROOT

๐Ÿ”„ CI / Automation

Active Workflows

Workflow Platform Features
build-all.yml All Meta-workflow (main badge)
build-windows.yml Windows x64 Optional NSIS installer
build-macos.yml macOS x64 Cocoa/WebKit linking
build-macos-arm64.yml macOS ARM64 Apple Silicon
build-linux.yml Linux x64 GTK3, WebKit2GTK
build-linux-arm64.yml Linux ARM64 Self-hosted/emulated

Environment Variables

Variable Purpose
ULTRALIGHT_SDK_URL Override auto-detected SDK URL
ULTRALIGHT_VERSION Override SDK version
WEBBROWSER_VERSION App version label
PACKAGE_GENERATORS CPack generators (TGZ;DEB;RPM)
CREATE_INSTALLER Build NSIS installer (Windows)

๐Ÿ” DRM WebView Notes

The DRM WebView subsystem provides native WebView integration for playing DRM-protected content (Netflix, Disney+, etc.) that cannot be rendered by the Ultralight engine.

How It Works

  1. Detection: Browser detects DRM-protected content via content type or site rules
  2. Fallback: Automatically switches from Ultralight to native WebView
  3. Integration: Native WebView overlays the main window with proper z-ordering
  4. Return: User can switch back to Ultralight for regular browsing

Platform Implementations

Platform Native WebView DRM Support Notes
Windows WebView2 (Edge/Chromium) Widevine, PlayReady Requires Edge runtime
macOS WKWebView FairPlay, Widevine Native Cocoa/WebKit
Linux WebKit2GTK Limited WebKit2GTK 4.1 preferred

Enabling DRM WebView

  1. Open Settings โ†’ DRM Content
  2. Toggle Enable DRM WebView
  3. Navigate to DRM-protected content
  4. Browser will automatically use native WebView when needed

Build Requirements

  • Windows: WebView2 SDK (auto-detected by CMake)
  • macOS: Xcode with Cocoa/WebKit frameworks
  • Linux: libwebkit2gtk-4.1-dev or libwebkit2gtk-4.0-dev

๐Ÿ“š Documentation

๐Ÿงฉ JavaScript Bridge API

The window.__ul API is injected into the main frame for native integration:

// Navigation
__ul.navigate("https://example.com");
__ul.newTab("https://example.org");
__ul.back(); __ul.forward(); __ul.reload();

// Settings
const settings = __ul.getSettingsSnapshot();
__ul.updateSetting("enable_adblock", true);
__ul.saveSettings();

// Theme
__ul.toggleDarkMode();
if (__ul.isDarkModeEnabled()) { /* ... */ }

// History
const history = __ul.getHistory();
__ul.clearHistory();

// App Info
const info = __ul.getAppInfo();
// { name: "Ultralight WebBrowser", version: "1.4.0" }
๐Ÿ” DRM WebView System

For DRM-protected content (Netflix, Disney+, etc.):

Platform WebView DRM Support
Windows WebView2 Widevine, PlayReady
macOS WKWebView FairPlay, Widevine
Linux WebKit2GTK Limited

Enable: Settings โ†’ DRM Content โ†’ Enable DRM WebView

The DRM WebView subsystem provides native WebView integration for playing protected content that cannot be rendered by the Ultralight engine.

How It Works:

  1. Browser detects DRM-protected content via content type or site rules
  2. Automatically switches from Ultralight to native WebView
  3. Native WebView overlays the main window with proper z-ordering
  4. User can switch back to Ultralight for regular browsing
๐Ÿ“ Location Spoofing

Override the browser's geolocation API with custom coordinates for privacy protection.

Configuration:

  1. Open Settings โ†’ Privacy & Security
  2. Enable Location Spoofing
  3. Enter custom Latitude and Longitude values
  4. Or use preset city buttons: New York, London, Tokyo, Sydney, Paris

How It Works:

  • Overrides navigator.geolocation.getCurrentPosition()
  • Overrides navigator.geolocation.watchPosition()
  • Returns spoofed coordinates to all web pages
  • Does not affect actual device location

Preset Coordinates:

City Latitude Longitude
New York 40.7128 -74.0060
London 51.5074 -0.1278
Tokyo 35.6762 139.6503
Sydney -33.8688 151.2093
Paris 48.8566 2.3522
๐Ÿ›ก๏ธ Ad Blocking

Rules loaded from:

  • assets/blocklist.txt
  • assets/filters/*.txt

Supported formats:

example.com
0.0.0.0 example.com
||example.com^
/ads.js
*://*/*analytics*.js

Always allowed: file://, data: URLs

Toggle via toolbar icon or Settings โ†’ Privacy โ†’ Enable AdBlock

โš™๏ธ Settings Categories
Category Options
Appearance Dark Mode, Vibrant Window, Transparent Toolbar, Compact Tabs
Privacy & Security AdBlock, Tracker Blocking, JavaScript, Cookies, DNT, Clear History, Location Spoofing
Address Bar Autocompletion, Favicons, Suggestions
Downloads Badge, Auto-open Panel, Location Prompt, WebP to PNG Conversion
Performance Smooth Scrolling, Hardware Acceleration, Local Storage
Accessibility Reduce Motion, High Contrast, Caret Browsing
Developer Remote Inspector, Performance Overlay
DRM Content Enable DRM WebView
โŒจ๏ธ Keyboard Shortcuts

Shortcuts are customizable via assets/shortcuts.json:

Action Default Shortcut
New Tab Ctrl+T
Close Tab Ctrl+W
Reload Ctrl+R / F5
Back Alt+Left
Forward Alt+Right
Address Bar Ctrl+L
Find Ctrl+F
Settings Ctrl+,
Developer Tools F12

๐Ÿ”„ CI / Automation

Active Workflows

Workflow Platform Features
build-all.yml All Meta-workflow (main badge)
build-windows.yml Windows x64 Optional NSIS installer
build-macos.yml macOS x64 Cocoa/WebKit linking
build-macos-arm64.yml macOS ARM64 Apple Silicon
build-linux.yml Linux x64 GTK3, WebKit2GTK
build-linux-arm64.yml Linux ARM64 Self-hosted/emulated

Environment Variables

Variable Purpose
ULTRALIGHT_SDK_URL Override auto-detected SDK URL
ULTRALIGHT_VERSION Override SDK version
WEBBROWSER_VERSION App version label
PACKAGE_GENERATORS CPack generators (TGZ;DEB;RPM)
CREATE_INSTALLER Build NSIS installer (Windows)

๐Ÿ› ๏ธ Tech Stack

Component Technology
Renderer Ultralight SDK
Language C++17, Objective-C++ (macOS)
Window/Input GLFW
Graphics OpenGL 3.3
Build System CMake + CPack
CI/CD GitHub Actions (x64 + ARM64)
DRM (Windows) WebView2 (Edge/Chromium)
DRM (macOS) WKWebView (Cocoa/WebKit)
DRM (Linux) WebKit2GTK

๐Ÿค Contributing

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m "Add amazing feature"
  4. Push: git push origin feature/amazing-feature
  5. Open a Pull Request

Guidelines:

  • Keep PRs focused and small
  • Include performance notes if relevant
  • Add tests for core logic changes
  • Follow existing code style

๐Ÿ”’ Security & Privacy

This project:

  • Does NOT implement hardened sandboxing found in mainstream browsers
  • Stores only ephemeral in-memory history (no disk persistence by default)
  • Performs lightweight filteringโ€”no advanced tracker heuristics
  • Should not be used for security-critical tasks without further auditing

๐Ÿ“„ License

MIT License โ€” see LICENSE for details.


๐Ÿ™ Acknowledgements

  • Ultralight โ€” Lightweight HTML renderer
  • GLFW โ€” Cross-platform windowing
  • Open-source community contributors

โš ๏ธ Disclaimer: This is an educational project demonstrating minimal browser architecture. Not recommended for security-critical tasks without additional hardening.

Made with โค๏ธ for Ultralight SDK by @ovsky

About

Web Browser built on top of the Ultralight GPU HTML Renderer.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •