WPE, the Web Platform for Embedded, allows embedders to create simple and performant systems based on Web platform technologies. It is designed with hardware acceleration in mind, leveraging common 3D graphics APIs for best performance

Browsers are the killer applications that many network device manufacturers need to embed in their products. However, there are many challenges that hinder the dream of building performant web browsers for low-cost devices. 

With the aim of making this dream a reality, at Igalia we have released WPE (initially known as WebKitForWayland), a new WebKit Port optimized for Embedded platforms, can support a variety of display protocols  like Wayland or X11.

WPE serves as a base for systems and environments that mainly or completely rely on Web platform technologies to build their interfaces. WPE is now part of Reference Design Kit (RDK Central) and has been accepted upstream at WebKit as a new official port of WebKit.

Our efforts have made it possible to run WPE on the Raspberry Pi (1, 2 and 3), Jetson TK1, MinnowBoard Max and Intel NUC. WPE could run out of the box in any HW that has a good EGL and OpenGL ES 2 support and basic GStreamer integration.

WPE facts

Some advantages of "WPE" on the Raspberry Pi include:

  • Enables rich and fast HTML-based user interfaces, integrating multimedia and 3D content, to run smoothly on low-cost devices.
  • Displays multimedia content directly in HTML, with high-quality CSS animations at 60FPS, and fluid 720p HTML videos.
  • Focused on graphics performance with multi-threading optimizations to improve CSS animation, scrolling, scaling, rendering of canvas and video element.
  • Consumes less memory. HTML-based interfaces will use less memory, leaving more available for the rest of your needs.
  • W3C standards MSE and EME/Clearkey supported. Unlicensed part of Youtube TV and similar platforms are now enabled.

  • WPE
  • Web Platform for Embedded
  • Wayland
  • WebKit
  • Embedded Systems
  • Hardware Acceleration
  • Raspberry Pi
  • EGL
  • OpenGL ES
  • WebGL

Featured Media

WPE - The Adaptable Web Engine Product for Embedding (IBC 2018)
WPE. Current Status and Future (Web Engines Hackfest 2018)
WPE WebKit: HTML5 User Interfaces for Embedded Devices (ELC Europe 2017)
WPE, a New WebKit Port Optimised for Embedded (IBC 2017)
WebRTC(s) in WebKit(s)! (Web Engines Hackfest 2017)
From "WebKit for Wayland" to WPE (Web Engines Hackfest 2016)
WebKit for Wayland
WebKitForWayland on Weston IVI Shell
WebKitGTK+ Wayland: WebKit2 and Accelerated Compositing


Adrián Pérez 21/10/2017

Web Engines Hackfest, 2017 Edition

At the beginning of October I had the wonderful chance of attending the Web Engines Hackfest in A Coruña, hosted by Igalia. This year we were over 50 participants, which was great to associate even more faces to IRC nick names, but more...

Enrique Ocaña 17/10/2017

Attending the GStreamer Conference 2017

This weekend I’ll be in Node5 (Prague) presenting our Media Source Extensions platform implementation work in WebKit using GStreamer. The Media Source Extensions HTML5 specification allows JavaScript to generate media streams for playback and lets...

Enrique Ocaña 20/03/2017

Media Source Extensions upstreaming, from WPE to WebKitGTK+

A lot of good things have happened to the Media Source Extensions support since my last post, almost a year ago. The most important piece of news is that the code upstreaming has kept going forward at a slow, but steady pace. The amount of code Igalia had...

Miguel Gómez 19/12/2016

WPE: Web Platform for Embedded

WPE is a new WebKit port optimized for embedded platforms that can support a variety of display protocols like Wayland, X11 or other native implementations. It is the evolution of the port formerly known as WebKitForWayland, and it was born as part of a...

Xabier Rodríguez 03/10/2016

WebRTC in WebKit/WPE

For some time I worked at Igalia to enable WebRTC on WebKitForWayland or WPE for the Raspberry Pi 2. The goal was to have the WebKit WebRTC tests working for a demo. My fellow Igalian Alex was working on the … Continue reading →


Merge pull request #513 from GlebNovodranPE/master

Merge pull request #513 from GlebNovodranPE/master Replace GraphicsContext3D::DONT_CARE with GL_DONT_CARE in MediaPlayer…

Miguel Gómez25/07/2018

Move WKBundleSetSpatialNavigationEnabled() to the public header.

Move WKBundleSetSpatialNavigationEnabled() to the public header.

Žan Doberšek23/05/2018

WPE::View: don't enable WebGL unconditionally (it's already enabled b…

WPE::View: don't enable WebGL unconditionally (it's already enabled by default).

Žan Doberšek24/04/2018

Move WKPreferences{G,S}etWebGLEnabled() to WKPreferencesRef.h.

Move WKPreferences{G,S}etWebGLEnabled() to WKPreferencesRef.h.

Žan Doberšek24/04/2018

WKPreferences: move WKPreferences{S,G}etCookieEnabled() to the public…

WKPreferences: move WKPreferences{S,G}etCookieEnabled() to the public header.

Žan Doberšek11/04/2018