Recent from talks
Nothing was collected or created yet.
Flow (web browser)
View on Wikipedia| Flow | |
|---|---|
| Developer | Ekioh |
| Stable release | None
|
| Engines | Flow, SpiderMonkey[1] |
| Operating system | Windows, macOS, Linux, Android |
| Type | Web browser |
| License | Proprietary |
| Website | ekioh.com/flow-browser |
Flow is a web browser with a proprietary browser engine intended for low-power devices or embedded systems, such as the Raspberry Pi.[2]
History
[edit]Flow is developed by Ekioh, a company from Cambridge, England,[3] which has made simple browsers for set-top boxes and other embedded systems.[4] The browser was originally created as an SVG browser in 2006, before later adding HTML support and multithreading.[5] The first beta was released in December 2020.[6] As of April 2025, it is still in beta.[7]
In April 2025 it was announced a preview version had reached 90% compliance with Web Platform Tests, meeting one of Apple's criteria[8] for use on iOS - prior to an EU ruling, all iOS browsers had to use the Webkit engine used by Safari.[9]
Features
[edit]Flow is intended for use in embedded systems, such as a beta version for the Raspberry Pi.[4][10] There are no concrete plans to release a version for desktop devices.[4] Flow uses its own proprietary browser engine, along with the SpiderMonkey JavaScript engine from Mozilla.[1] The browser uses multithreading and renders everything using the GPU in order to keep the CPU free for execution. The performance automatically scales as new CPU and GPU cores are added.[4]
References
[edit]- ^ a b Wombwell, Piers [@_Piers_] (2021-03-01). "Yes. No shared code with any other browser engine. We do use Mozilla's SpiderMonkey for JavaScript, and the usual 3rd party libraries for bitmap decoding, encryption, etc" (Tweet). Retrieved 2025-01-29 – via Twitter.
- ^ Collins, Barry (2021-06-30). "This Web Browser's Faster Than Chrome - And You've Never Heard Of It". Forbes. Retrieved 2025-01-29.
- ^ "Definition of Flow browser". PCMAG. Retrieved 2025-01-29.
- ^ a b c d Khalili, Joel (27 February 2021). "This web browser you've never heard of is absolutely rapid, but don't get too excited". TechRadar.
- ^ Speed, Richard (2020-12-29). "And now for something completely different: A lightweight, fast browser that won't slurp your data". The Register. Retrieved 2025-01-29.
- ^ Hellstrom, Jeremy (30 December 2020). "Work In Progress; Check Out The Flow Browser Engine - PC Perspective". PC Perspective.
- ^ "Flow Preview Builds". Ekioh. Retrieved 2025-04-17.
- ^ "Using alternative browser engines in the European Union". apple.com. Apple. Retrieved 30 April 2025.
- ^ Richard Speed (30 April 2025). "Alt-browser Flow breezes through web tests, but still far from a daily driver". The Register. Situation Publishing. Retrieved 30 April 2025.
- ^ Newman, Jared (March 10, 2021). "For the first time in years, someone is building a web browser from scratch". Fast Company.
Flow (web browser)
View on GrokipediaHistory
Origins and early development
Flow originated from the work of Ekioh, a Cambridge, England-based company founded in 2006 by Piers Wombwell, who brought over 25 years of experience in software development, particularly in rendering engines, graphics, and embedded systems.[6] Ekioh initially targeted the set-top box market, where existing web technologies proved inadequate due to high resource demands, prompting the creation of a custom SVG rendering engine for user interfaces.[7] This engine prioritized GPU acceleration and 2D blitting to deliver smooth, high-definition animations and layouts on low-power hardware, eventually deploying to tens of millions of devices.[8] Early development emphasized efficiency for embedded environments, starting with SVG as the core format because, as Wombwell noted, "SVG was way faster than HTML" at the time, enabling performant vector graphics without the overhead of full HTML parsing.[8] Over the subsequent years, the engine evolved to incorporate XHTML support before expanding to comprehensive HTML rendering, addressing the growing demand for web standards in consumer electronics like televisions and media players.[8] This progression laid the groundwork for multithreading, drawing inspiration from parallel processing research to distribute layout, rendering, and scripting across multiple CPU cores, a departure from the single-threaded bottlenecks in legacy engines.[9] By the mid-2010s, Ekioh's efforts had refined the technology into a proprietary browser engine optimized for multi-core architectures in resource-constrained platforms, culminating in the formal introduction of Flow in 2018 as the first multithreaded embedded HTML browser.[9] Initial builds focused on desktop platforms like Linux, Windows, macOS, and Android for testing, with an emphasis on low memory footprint—under 34 MB for the executable—and integration with standards such as CSS3, Flexbox, and WebGL.[8] This phase prioritized causal performance gains through hardware parallelism over compatibility with bloated web ecosystems, positioning Flow for applications in IoT devices and single-board computers like the Raspberry Pi.[2]Public unveiling and milestones
Ekioh unveiled Flow on May 1, 2018, announcing it as the world's first multithreaded embedded browser designed for multi-core processors to enhance user experience on low-power devices.[9] The initial reveal emphasized its parallel processing for layout and rendering, targeting set-top boxes and similar hardware where traditional single-threaded browsers struggled with performance.[9] At this stage, Flow was positioned as a proprietary solution building on Ekioh's prior SVG engine development from 2006, but full public access was not yet available due to incomplete compatibility with major sites.[7] Key early milestones included demonstrations of superior speed: in June 2019, Flow outperformed Chrome by over three times in animation benchmarks on multi-core systems.[10] By November 2019, it achieved rendering of complex pages like Google Mail, marking progress in HTML5 support.[11] In June 2020, Flow passed the Acid3 test suite, validating its compliance with web standards for layout, scripting, and rendering.[12] The first public beta preview became downloadable on December 29, 2020, initially for Raspberry Pi 400, enabling broader testing on ARM-based hardware.[13] This release highlighted Flow's lightweight architecture, with memory usage under 100 MB for typical sites and GPU-accelerated drawing.[13] Subsequent expansions in March 2021 extended availability to all Raspberry Pi models, adding features like paste support in the URL bar.[14] Recent milestones include version 7.0.1 in April 2025, which passed 90% of web-platform-tests on Raspberry Pi, demonstrating near-parity with established browsers in standards conformance while maintaining efficiency on embedded systems.[4]Recent advancements (2020–2025)
In 2020, Flow introduced support for CSS pseudo-classes such as :is() and :target, ClipboardEvent interfaces, History.go() methods, PointerEvent handling, and JavaScript Modules, alongside enhancements to IPv6 connectivity, subpixel font rendering, SVG masking, media playback, and HTTP/2 protocol management.[15] These updates improved compatibility with modern web standards and resource efficiency on low-power hardware.[15] The 2021 releases, spanning versions 6.0.0 to 6.9.0, marked significant progress in layout and scripting capabilities, including CSS Grid implementation, Fetch API integration, WebAssembly streaming, DOMMatrix utilities, FileReader support, and Media Playback Quality metrics.[15] SVG features like SVGFitToViewBox were expanded, with optimizations targeting smoother rendering on multi-core embedded systems.[15] Advancements in 2022, through versions 6.10.0 to 6.19.0, focused on scripting and automation, adding URLSearchParams.size properties, CSS transitions for filter effects, and WebDriver protocol version 2 support for window creation and event handling.[15] Media playback events and grid rendering received refinements, enhancing reliability for dynamic content.[15] By 2023, versions 6.20.0 to 7.0.0 incorporated web component standards with Custom Elements v1 and Shadow DOM encapsulation, alongside GPU-accelerated SVG painting to reduce CPU load during complex vector rendering.[15] CSS math functions and expanded WebDriver features for cookies and frame navigation further bolstered developer tools and site interoperability.[15] In April 2025, a preview of version 7.0.1 demonstrated 90% compliance with web-platform-tests on Raspberry Pi 500 hardware, surpassing prior benchmarks for standards adherence.[4] This release added a dedicated user interface for URL entry and navigation, with targeted fixes enabling functional access to resource-intensive sites like YouTube and Google Docs.[4] Ekioh announced intentions to revive an iOS port, capitalizing on Apple's provisions for alternative browser engines under EU regulations.[4]Technical Architecture
Rendering engine design
Flow's rendering engine is a proprietary system developed from scratch by Ekioh, eschewing legacy codebases to enable native multithreading and parallelism without compatibility constraints imposed by older architectures. Unlike traditional single-threaded engines such as Blink or Gecko, which process layout sequentially, Flow distributes layout computations across multiple CPU cores, allowing concurrent positioning and styling of page elements like divs, flexboxes, and transforms. This design leverages all available cores for parsing HTML and applying CSS3 properties, including calc(), custom properties, and bi-directional text, resulting in layout times that scale inversely with core count.[1][16] The engine employs a fully GPU-accelerated rendering pipeline, where HTML elements are drawn directly to the GPU rather than relying on CPU-based rasterization, which minimizes memory overhead and enables smoother animations and compositing. This GPU-centric approach offloads rendering tasks—such as Canvas, SVG, and WebGL operations—from the CPU, freeing resources for JavaScript execution via the integrated SpiderMonkey engine with just-in-time compilation. Innovations include hardware-optimized parallelism for embedded systems, achieving sub-1KB per DIM (display independent model) memory usage on GPU-enabled processors, and support for advanced features like 3D CSS environments through GPU-native transforms.[1][17] Performance stems from causal separation of concerns: multithreaded DOM construction and style resolution feed into parallel layout threads, which then composite via GPU shaders, avoiding bottlenecks in traditional engines where layout blocks rendering. Ekioh's architecture prioritizes efficiency for multi-core silicon, delivering up to three times the frame rates in graphics benchmarks compared to Chromium-based browsers on equivalent hardware, as measured by MotionMark tests focusing on HTML5 Canvas and SVG animations. This design reflects first-principles optimization for modern hardware, unburdened by decades of incremental web compatibility fixes.[10][18]Multithreading and parallelism
Flow's rendering engine incorporates multithreading primarily in the page layout phase, enabling concurrent positioning of multiple HTML elements across available CPU cores. This approach allows layout tasks, such as word wrapping in paragraphs or processing separate flexboxes, to execute in parallel, scaling performance with multi-core processors.[1][7] Launched on May 1, 2018, as the first multithreaded embedded browser, Flow demonstrated layout and animation speeds more than double those of comparable browsers on multi-core hardware.[9][19] While HTML/CSS parsing and core JavaScript execution remain single-threaded—except for Web Workers—Flow's parallelism targets computationally intensive layout operations to minimize blocking and enhance responsiveness on resource-limited devices. Multithreading can be disabled via configuration for compatibility or debugging, underscoring its optional yet integral role in performance optimization.[7] This design contrasts with traditional single-threaded layout in engines like Blink or Gecko, prioritizing embedded efficiency over desktop-scale complexity. Parallelism extends to rendering through fully GPU-accelerated drawing of HTML elements, offloading graphical computations from the CPU to enable smoother animations and richer features like WebGL and canvas without excessive memory overhead. By leveraging direct GPU access, Flow reduces CPU load for JavaScript processing and achieves lower overall resource utilization, particularly beneficial for low-power systems with integrated graphics.[1][20] Benchmarks indicate this hybrid CPU-GPU parallelism yields faster page loads and fluid scrolling, with performance improving as core counts increase.[1]Hardware optimization for embedded systems
Flow's rendering engine employs a fine-grained multithreaded architecture for HTML layout, enabling concurrent processing of page elements to scale performance with the number of available CPU cores in embedded multi-core processors.[21] This approach doubles layout and animation speeds relative to single-threaded alternatives on multi-core silicon, providing smoother user interfaces without requiring content re-authoring for constrained hardware.[21] Such parallelism is particularly suited to resource-limited embedded systems like set-top boxes, automotive displays, and industrial controllers, where multi-core system-on-chips (SoCs) are common but legacy browser designs underutilize them.[21] Rendering is fully GPU-accelerated, with rasterization offloaded to the graphics hardware to minimize CPU involvement and reduce overall memory footprint.[1] This optimization frees CPU cycles for other tasks in low-power devices, such as Raspberry Pi models with GPU-enabled processors requiring at least 1,000 DMIPS of performance, enabling glitch-free animations and responsive HTML applications.[1] By leveraging GPU capabilities inherent in many embedded platforms, Flow achieves lower memory usage during page rendering compared to CPU-bound engines, addressing the tight RAM constraints typical in IoT and consumer electronics.[1] The browser integrates with embedded-specific APIs and frameworks, including GStreamer for media handling and vendor-specific STB interfaces, while supporting SDKs for Linux-based systems prevalent in embedded deployments.[1] Benchmarks on comparable hardware demonstrate Flow outperforming established browsers; for instance, in the MotionMark 1.1 test measuring graphics-intensive rendering at 60 fps, Flow scored over three times higher than Chrome (1,113.74 vs. 308.58 average score), highlighting the efficacy of its parallel design for hardware-accelerated embedded use cases.[10] These optimizations position Flow as a viable engine for non-desktop environments, prioritizing efficiency over feature bloat found in general-purpose browsers.[21]Features
Core browsing capabilities
Flow provides core web browsing functionality through its proprietary rendering engine, which parses and displays HTML documents styled with CSS, executes embedded JavaScript, and handles standard user interactions such as following hyperlinks and submitting forms.[1] This enables loading and navigation within web pages on low-power devices, including support for back-and-forward history mechanisms inherent to web standards implementation.[1] The browser supports rendering of HTML5 and CSS3 elements, including advanced features like Flexbox layouts, CSS transforms (2D and 3D), custom properties, and bidirectional text rendering, ensuring compatibility with complex page structures common in modern websites.[1] Graphics capabilities encompass Web Fonts for typography, Canvas for dynamic drawing, SVG for vector graphics, and WebGL for hardware-accelerated 3D rendering, all processed via 100% GPU-based compositing to minimize CPU load and memory usage.[1] Media playback is facilitated through native HTML audio and video tags, integrated with frameworks like GStreamer for efficient decoding on embedded hardware.[1] JavaScript execution relies on the SpiderMonkey engine with just-in-time (JIT) compilation, supporting ECMAScript standards, Web Workers for background threading, and WebSockets for real-time communication, which collectively enable dynamic content updates and interactive applications without blocking the main rendering thread.[1] Data persistence features include Web Storage for key-value pairs and Web SQL for structured queries, allowing sites to maintain state across sessions in resource-limited settings.[1] While optimized for integration into device UIs rather than standalone desktop use, Flow's engine includes NPAPI plugin support for extending capabilities, such as custom media handlers, and inbuilt tools for content analysis and debugging during development.[1]Standards compliance and extensions
Flow achieves a 90% pass rate on the Web Platform Tests suite in preview version 7.0.1, as announced in April 2025, evaluating conformance to W3C and WHATWG specifications for HTML Living Standard, CSS, DOM, JavaScript APIs, and related web technologies.[4] This positions it competitively among alternative engines, though full parity with dominant browsers like Chromium remains ongoing.[4] Core standards support includes HTML5 elements and APIs such as<audio>, <video>, Canvas 2D and WebGL contexts, SVG, Web Fonts, Web Storage, Web Workers, and WebSockets.[1] CSS3 features encompass calc(), custom properties, 2D/3D transforms, and Flexbox layout.[1] JavaScript execution leverages ECMAScript via a JIT-compiled SpiderMonkey engine.[1]
Recent enhancements, introduced in version 7.0.0, include Custom Elements v1, Shadow DOM API with :host pseudo-classes, CSS math functions (e.g., cos(), sin(), clamp()), CSS Shapes via path() and shape() functions, Motion Path module, Streams API, OffscreenCanvas, and Web Animations Level 1.[15] CSS parsing aligns with CSS Syntax Module Level 3/4 specifications, supporting identifiers and advanced color functions like hwb(), lab(), and color-mix().[15]
For extensibility, Flow supports NPAPI plugins to enable custom integrations with platform hardware or services in embedded deployments, such as set-top boxes.[1] It lacks compatibility with modern browser extension APIs like WebExtensions, reflecting its design emphasis on minimal footprint and native performance over user-customizable add-ons.[1]
Privacy and resource management
Flow employs a proprietary rendering engine that leverages GPU acceleration for all HTML element drawing, which minimizes CPU involvement in rendering tasks and contributes to lower overall memory footprint compared to traditional CPU-based approaches. This design choice enables efficient handling of complex web pages on resource-constrained hardware, such as single-board computers, by offloading layout and painting operations to the GPU while keeping the CPU available for JavaScript execution.[1][20] In demonstrations on Raspberry Pi devices running preview versions like 7.0.1, Flow maintains smooth performance without excessive resource demands, supporting HTML5 features with reduced power consumption suitable for embedded systems.[4] Multithreading in Flow's architecture distributes page layout across multiple CPU cores, optimizing parallelism for multi-core processors prevalent in modern low-power silicon. This approach avoids single-threaded bottlenecks, allowing for faster processing of dynamic content while conserving energy through balanced core utilization rather than peak loads on fewer threads. Resource management is further enhanced by the engine's focus on minimal overhead, resulting in memory usage that is a fraction of competitors, particularly at high resolutions like 4K, making it viable for set-top boxes and IoT devices where RAM is limited to hundreds of megabytes.[1][22][21] Privacy features in Flow are not prominently emphasized in its core design, which prioritizes performance over extensive user-facing protections like built-in ad blockers or tracker prevention, distinguishing it from privacy-centric browsers. Early previews have omitted certain security elements, such as robust password handling, advising caution for sensitive data. However, its clean-slate engine avoids the telemetry and data collection common in engines derived from large-scale projects like Chromium, potentially reducing inherent data leakage in embedded contexts. For connected TV applications, Flow's architecture supports cookieless environments that could enhance user privacy by limiting cross-site tracking opportunities in advertising ecosystems.[23][8][6]Performance and Benchmarks
Speed and efficiency metrics
Flow's speed has been evaluated using standardized benchmarks emphasizing graphics and animation performance, critical for embedded applications. In the MotionMark benchmark, released by Ekioh on June 3, 2019, Flow achieved scores over three times higher than Google Chrome and 1.5 times higher than competing browsers like Firefox, demonstrating superior rendering of dynamic content at 60 frames per second. This multithreaded architecture leverages multi-core processors for parallel layout and animation tasks, reportedly doubling performance compared to single-threaded alternatives on equivalent hardware. Independent testing in the Sinz Maze benchmark, which assesses JavaScript and HTML rendering speed, recorded Flow at 127.16 tiles per second against Chromium's 80.25 tiles per second on comparable systems. Efficiency metrics highlight Flow's optimization for resource-constrained environments, such as set-top boxes and Raspberry Pi devices. The browser maintains a minimal memory footprint, with early implementations stripping down WebKit components to approximately 24 MB for core operations, avoiding the bloat common in desktop browsers. By offloading all rendering to the GPU via rasterization, Flow reduces graphics memory demands and eliminates CPU-intensive bitmap caching, enabling smoother animations without proportional increases in RAM usage. A technical analysis by Ekioh indicates that this GPU-centric approach at least doubles animation frame rates while halving associated memory requirements relative to traditional CPU-based rendering pipelines. These attributes position Flow as particularly suitable for low-power embedded systems, where power consumption correlates directly with computational efficiency.| Benchmark | Flow Score | Chrome/Chromium Score | Date/Source |
|---|---|---|---|
| MotionMark (graphics/animation) | >3x Chrome baseline | Baseline | June 3, 2019[10] |
| Sinz Maze (JS/HTML rendering) | 127.16 tiles/sec | 80.25 tiles/sec | June 12, 2021[24] |
| Layout/Animation (multi-core) | >2x competitors | Baseline | May 1, 2018[19] |
Comparative testing results
Independent benchmarks on a 2018 MacBook Pro with a 2.9 GHz processor and Retina display, using the MotionMark 1.1 test for graphics performance involving HTML, CSS, SVG, and Canvas elements at 60 fps, showed Flow achieving an average score of 1113.74 across 10 runs.[10][25] In the same test, Safari scored 741.69, Chrome 308.58, and Firefox 104.00, positioning Flow as approximately 3.6 times faster than Chrome and 1.5 times faster than Safari.[10][25] These results highlight Flow's multithreaded architecture advantages in rendering-intensive tasks, though tests were conducted by the developer.[10]| Browser | MotionMark 1.1 Score (MacBook Pro, 2018) |
|---|---|
| Flow v5.5.2 | 1113.74 |
| Safari v12.1 | 741.69 |
| Chrome v74 | 308.58 |
| Firefox v66 | 104.00 |
