# kiwibrowser/src

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/kiwibrowser-src).**

2,948 stars · 434 forks · other · archived

## Links

- GitHub: https://github.com/kiwibrowser/src
- awesome-repositories: https://awesome-repositories.com/repository/kiwibrowser-src.md

## Description

This project is a Chromium-based mobile browser and rendering engine designed for mobile platforms. It functions as a web extension host, allowing the execution of browser extensions within a mobile environment to provide custom functionality.

The project distinguishes itself through custom user interface modifications, such as the implementation of a specialized night mode and the relocation of the address bar for improved ergonomics. It also includes a remote debugging interface and protocol that allow an external developer console to connect to a live browser instance for inspecting and troubleshooting web pages.

The codebase covers a broad range of system capabilities, including an inter-process communication framework using IDL-based bindings and message pipes. It implements a graphical compositor and rasterizer that optimizes visual performance through layer-based composition and tiled content rasterization. Other core areas include media playback with support for protected content, remote tab casting, and the ability to run the browser headlessly in server environments.

## Tags

### Business & Productivity Software

- [Mobile Browsers](https://awesome-repositories.com/f/business-productivity-software/chromium-based-browsers/mobile-browsers.md) — A web browser for mobile platforms built on the Chromium engine with custom user interface and feature modifications.
- [Extension Hosts](https://awesome-repositories.com/f/business-productivity-software/chromium-based-browsers/extension-hosts.md) — A system for loading and executing browser extensions within a mobile environment to add custom functionality.

### Mobile Development

- [Mobile Web Browsers](https://awesome-repositories.com/f/mobile-development/mobile-web-browsers.md) — Building and customizing a web browser for mobile platforms by adapting a core engine and implementing platform layers.
- [Browser Engine Porting](https://awesome-repositories.com/f/mobile-development/browser-engine-porting.md) — Adapts the Chromium rendering engine to run on mobile platforms by implementing necessary platform-specific layers. ([source](https://github.com/kiwibrowser/src/tree/master/ios))

### Software Engineering & Architecture

- [Custom Browser Development](https://awesome-repositories.com/f/software-engineering-architecture/browser-platforms/custom-browser-development.md) — Provides a licensed codebase and guidelines for creating derivative mobile browsers based on a core platform. ([source](https://github.com/kiwibrowser/src#readme))
- [Multiplatform Code Sharing](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-development/multiplatform-code-sharing.md) — Uses architectural patterns to share common logic across different operating systems and process types. ([source](https://github.com/kiwibrowser/src/tree/master/components))
- [IDL-Based Binding Generators](https://awesome-repositories.com/f/software-engineering-architecture/idl-based-binding-generators.md) — Generates language-specific serialization and deserialization code from IDL files to enable structured cross-process communication.
- [Inter-Process Communication](https://awesome-repositories.com/f/software-engineering-architecture/inter-process-communication.md) — Managing data exchange between separate processes using structured interfaces, message pipes, and serialization.
- [Browser Process Isolation](https://awesome-repositories.com/f/software-engineering-architecture/multi-process-architectures/browser-process-isolation.md) — Implements a multi-process architecture that isolates the UI process from the rendering and GPU tasks. ([source](https://github.com/kiwibrowser/src/tree/master/ash))
- [Interface-to-Implementation Bindings](https://awesome-repositories.com/f/software-engineering-architecture/interface-to-implementation-bindings.md) — Connects abstract service interfaces to concrete system implementations through a connector mapping. ([source](https://github.com/kiwibrowser/src/tree/master/ipc))
- [Platform Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/platform-abstraction-layers.md) — Decouples reusable logic into components that map to specific operating system primitives for cross-platform compatibility.

### Data & Databases

- [C++-to-JavaScript Type Mappings](https://awesome-repositories.com/f/data-databases/type-mapping-frameworks/script-to-native-type-mappings/native-type-mappings/rust-c-type-mappings/rust-to-javascript-mappings/c-to-javascript-type-mappings.md) — Converts data between C++ and JavaScript using templatized routines and custom type specializations. ([source](https://github.com/kiwibrowser/src/tree/master/gin))

### Development Tools & Productivity

- [Browser](https://awesome-repositories.com/f/development-tools-productivity/application-debugging/remote-debugging/browser.md) — Connecting an external developer console to a mobile instance to inspect page content and troubleshoot code in real time.
- [Type-Safe Binding Generators](https://awesome-repositories.com/f/development-tools-productivity/cli-build-tools/ffi-binding-cli-generators/type-safe-binding-generators.md) — Produces language-specific code from an IDL to handle the serialization and deserialization of inter-process messages. ([source](https://github.com/kiwibrowser/src/tree/master/mojo))
- [Script Execution Contexts](https://awesome-repositories.com/f/development-tools-productivity/process-execution-utilities/script-execution-contexts.md) — Runs JavaScript code within isolated script contexts, including support for a subset of the AMD module specification. ([source](https://github.com/kiwibrowser/src/tree/master/gin))
- [Remote Debugging](https://awesome-repositories.com/f/development-tools-productivity/application-debugging/remote-debugging.md) — Provides a remote debugging protocol to connect a desktop console to a mobile instance for real-time inspection. ([source](https://github.com/kiwibrowser/src/blob/master/README.md))

### Graphics & Multimedia

- [Damage-Event-Driven](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/engines/canvas-vector-graphics/custom-shape-rendering/custom-renderable-interfaces/frame-based-render-hooks/render-loops/damage-event-driven.md) — Implements render loops that trigger partial screen redraws only for regions that reported damage. ([source](https://github.com/kiwibrowser/src/tree/master/cc))
- [Graphics Rendering Engines](https://awesome-repositories.com/f/graphics-multimedia/graphics-rendering-engines.md) — A graphical compositor and rasterizer that manages layer trees and tiled content to optimize visual performance.
- [Media Decoders](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-decoders.md) — Decodes and renders audio and video using a pipeline of demuxers, decoders, and output sinks. ([source](https://github.com/kiwibrowser/src/tree/master/media))
- [Occlusion Culling](https://awesome-repositories.com/f/graphics-multimedia/occlusion-culling.md) — Optimizes rendering performance by skipping the drawing of content hidden behind other opaque elements. ([source](https://github.com/kiwibrowser/src/tree/master/cc))
- [Tiled Rasterization](https://awesome-repositories.com/f/graphics-multimedia/tiled-image-renderers/tiled-rasterization.md) — Optimizes rendering performance by dividing layer content into independent tiles that are prioritized and scheduled for rasterization.
- [Visual Layer Composition](https://awesome-repositories.com/f/graphics-multimedia/visual-layer-composition.md) — Renders visual frames using a tree of low-level layer objects and rasterizing recordings while optimizing via occlusion culling.

### Networking & Communication

- [Asynchronous Message Passing](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/inter-process-communication/asynchronous-message-passing.md) — Provides non-blocking communication channels to coordinate tasks between the main browser and renderer processes. ([source](https://github.com/kiwibrowser/src/tree/master/mojo))
- [Inter-Process Communication Frameworks](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/inter-process-communication/inter-process-communication-frameworks.md) — A system of message pipes and IDL-based bindings for exchanging structured data between isolated browser processes.
- [Cross-Process Message Routing](https://awesome-repositories.com/f/networking-communication/in-process-message-routing/cross-process-message-routing.md) — Implements routing mechanisms that deliver messages between different OS processes, such as from the renderer to the browser. ([source](https://github.com/kiwibrowser/src/tree/master/ipc))
- [Inter-Process Communication Interfaces](https://awesome-repositories.com/f/networking-communication/inter-process-communication-interfaces.md) — Facilitates bidirectional data and request exchange between distinct process types using a structured interface system. ([source](https://github.com/kiwibrowser/src/tree/master/ipc))
- [Message Passing](https://awesome-repositories.com/f/networking-communication/message-passing.md) — Exchanges data and requests between isolated browser processes using structured interfaces and platform-agnostic primitives.
- [Message Ordering Guarantees](https://awesome-repositories.com/f/networking-communication/network-reliability-diagnostics/reliability-scaling/message-ordering-guarantees.md) — Ensures strict communication sequencing by associating multiple interfaces with a single shared message pipe. ([source](https://github.com/kiwibrowser/src/tree/master/ipc))

### Operating Systems & Systems Programming

- [Inter-Process Shared Memory](https://awesome-repositories.com/f/operating-systems-systems-programming/inter-process-shared-memory.md) — Implements shared buffers and message pipes for low-level data exchange between threads and isolated processes. ([source](https://github.com/kiwibrowser/src/tree/master/mojo))
- [Native Process Connection Primitives](https://awesome-repositories.com/f/operating-systems-systems-programming/native-process-connection-primitives.md) — Establishes process connections using host-platform primitives such as sockets and named pipes. ([source](https://github.com/kiwibrowser/src/tree/master/mojo))

### Programming Languages & Runtimes

- [ECMAScript Engine Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/ecmascript-engine-implementations.md) — Runs JavaScript code by implementing the ECMAScript specification to process scripts within the browser. ([source](https://github.com/kiwibrowser/src/tree/master/v8))
- [Templated Type Dispatch](https://awesome-repositories.com/f/programming-languages-runtimes/generic-types/type-safe-dispatching/templated-type-dispatch.md) — Maps JavaScript function calls to C++ member functions through templatized type conversion routines.
- [C++ Callback Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/interoperability/javascript-to-native-bridges/c-callback-bindings.md) — Implements bidirectional communication by binding JavaScript functions to C++ callbacks through templatized conversion routines.
- [C Function Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/native-c-interoperability/c-function-bindings.md) — Exposes native C++ functions and member pointers to JavaScript for direct execution. ([source](https://github.com/kiwibrowser/src/tree/master/gin))
- [Garbage-Collector Bound Lifecycles](https://awesome-repositories.com/f/programming-languages-runtimes/object-lifecycle-managers/garbage-collector-bound-lifecycles.md) — Binds C++ classes to a garbage collector so objects are automatically deleted when no longer referenced. ([source](https://github.com/kiwibrowser/src/tree/master/gin))
- [Language-Bound Lifecycles](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-internals-foundations/garbage-collectors/language-bound-lifecycles.md) — Automatically manages C++ object deletion by binding their lifecycles to the JavaScript garbage collector.

### Security & Cryptography

- [Cross-Origin Security Policies](https://awesome-repositories.com/f/security-cryptography/cross-origin-security-policies.md) — Represents and manages the origin of URLs to facilitate security decisions and cross-origin access control. ([source](https://github.com/kiwibrowser/src/tree/master/url))

### Web Development

- [Browser Extensibility](https://awesome-repositories.com/f/web-development/browser-extensibility.md) — Implements a modular framework to load, manage, and execute browser extensions within a mobile host. ([source](https://github.com/kiwibrowser/src/tree/master/extensions))
- [Browser Extension Hosts](https://awesome-repositories.com/f/web-development/browser-extension-hosts.md) — Implementing a system to load, manage, and execute browser extensions within a mobile web environment.
- [Browser Extensions](https://awesome-repositories.com/f/web-development/browser-extensions.md) — Executes and manages browser extensions within a mobile environment to provide custom functionality. ([source](https://github.com/kiwibrowser/src/blob/master/README.md))
- [Rendering Performance Optimizations](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-engines/rendering-performance-optimizations.md) — Improving visual performance by managing layer trees, rasterizing content tiles, and minimizing display damage.
- [Rendering Invalidation Tracking](https://awesome-repositories.com/f/web-development/server-side-rendering/rendering-validation/invalidation-validators/rendering-invalidation-tracking.md) — Tracks changes to web content to determine the minimum area that must be rerasterized before the next frame. ([source](https://github.com/kiwibrowser/src/tree/master/cc))
- [Embedded Browser Engines](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-extension-development/browser-extensions/embedded-browser-engines.md) — Integrates core browser capabilities directly into C++ applications with customizable networking and message pumps. ([source](https://github.com/kiwibrowser/src/tree/master/headless))
- [Headless Browsers](https://awesome-repositories.com/f/web-development/headless-browsers.md) — Provides a headless browser mode for executing scripts and extracting metadata without a visible graphical interface. ([source](https://github.com/kiwibrowser/src/tree/master/headless))
- [Remote Browser Controllers](https://awesome-repositories.com/f/web-development/remote-browser-controllers.md) — Allows driving browser actions and inspecting page content through a remote debugging interface or automation tools. ([source](https://github.com/kiwibrowser/src/tree/master/headless))
- [Remote Debugging Interfaces](https://awesome-repositories.com/f/web-development/remote-debugging-interfaces.md) — Provides an interface for external developer consoles to connect to a live browser instance for inspecting page content.
- [Remote Debugging Tools](https://awesome-repositories.com/f/web-development/remote-debugging-tools.md) — Connects an external desktop developer console to a live mobile browser instance for real-time inspection. ([source](https://github.com/kiwibrowser/src#readme))

### User Interface & Experience

- [Bottom Navigation Bars](https://awesome-repositories.com/f/user-interface-experience/bottom-navigation-bars.md) — Places the URL and search bar at the bottom of the screen for easier one-handed access. ([source](https://github.com/kiwibrowser/src#readme))
- [Browser Interface Customizations](https://awesome-repositories.com/f/user-interface-experience/browser-interface-customizers/browser-interface-customizations.md) — Modifying browser layout and themes, such as implementing night mode or relocating the address bar for better ergonomics.
- [Dark Mode Strategies](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/theme-systems/dark-mode-strategies.md) — Implements a custom dark theme system for both the user interface and web content. ([source](https://github.com/kiwibrowser/src/blob/master/README.md))
