wgpu
WebGPU for Python
Decision gist · record as of 2026-08-14
Yes, if you need modern GPU graphics or compute in Python and can target Python 3.11+. The library is actively maintained, permissively licensed, has no known vulnerabilities, and offers a stable, well-tested API suitable for production visualization and compute work. Install friction is moderate due to platform-specific binaries, but precompiled wheels handle most systems. Not suitable if you require Python <3.11 or need to support older GPU drivers.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11+.
- GPU hardware and appropriate drivers (Vulkan, Metal, DX12, or OpenGL) must be available on the target system.
- Medium install friction due to platform-specific binary wheels (Windows, Linux x86/aarch64, macOS Intel/ARM) and three runtime dependencies including cffi and rendercanvas.
License · maintenance · safety
permissive license (permissive) — BSD 2-Clause License permits commercial and private use with minimal restrictions; you must retain copyright notice and disclaimer in distributions. No copyleft obligations.
last release 2026-07-19 (26 days) · last repo commit 2026-07-19 · 693 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 129,092 downloads/mo, #11,684 on PyPI
Alternatives
Verify before relying
pip install wgpu rendercanvas
import wgpu
from rendercanvas.auto import RenderCanvas, loop
# Access full WebGPU API via wgpu namespace
device = await wgpu.gpu.request_adapter().request_device()- Whether async functions work reliably with standard asyncio/trio patterns in production
- Performance characteristics compared to direct wgpu-native or other GPU frameworks
- Stability of the WebGPU spec implementation as the standard continues to evolve
What it is and what it does
wgpu-py is a Pythonic wrapper around wgpu-native, exposing the WebGPU API—a modern, higher-level GPU graphics standard designed to replace OpenGL. It abstracts over Vulkan, Metal, DX12, and OpenGL backends, providing a unified interface for GPU compute and graphics across platforms. The library ships with precompiled binaries for Windows, Linux (x86 and ARM), and macOS (Intel and M1), making installation straightforward on supported systems.
The package is used as the foundation for rendering engines like pygfx and supports both synchronous (blocking) and asynchronous function variants, allowing integration with asyncio or Trio. Test coverage is near complete, and the API surface is mature enough to power production visualization and compute libraries. Developers can render to screen via rendercanvas, which auto-detects available GUI backends (GLFW, Qt, wxPython, Jupyter), or use wgpu purely for headless GPU compute.
Use it for
- Build modern GPU-accelerated visualization and rendering engines as a foundation (e.g., pygfx)
- Implement GPU compute kernels and data-parallel algorithms without low-level graphics API complexity
- Create cross-platform graphics applications that run on Windows, Linux, and macOS with a single codebase
- Embed GPU rendering in Qt/wxPython/Jupyter applications via rendercanvas integration
- Port WebGPU JavaScript code to Python while maintaining API compatibility
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need modern GPU graphics or compute in Python and can target Python 3.11+.
The library is actively maintained, permissively licensed, has no known vulnerabilities, and offers a stable, well-tested API suitable for production visualization and compute work. Install friction is moderate due to platform-specific binaries, but precompiled wheels handle most systems. Not suitable if you require Python <3.11 or need to support older GPU drivers.
Install
wgpu on PyPI
Before you install
Medium install friction due to platform-specific binary wheels (Windows, Linux x86/aarch64, macOS Intel/ARM) and three runtime dependencies including cffi and rendercanvas. Actively maintained with a release 26 days old; requires Python 3.11+.
Requires Python 3.11+. GPU hardware and appropriate drivers (Vulkan, Metal, DX12, or OpenGL) must be available on the target system.
License in practice
BSD 2-Clause License permits commercial and private use with minimal restrictions; you must retain copyright notice and disclaimer in distributions. No copyleft obligations.
Quickstart
pip install wgpu rendercanvas
import wgpu
from rendercanvas.auto import RenderCanvas, loop
# Access full WebGPU API via wgpu namespace
device = await wgpu.gpu.request_adapter().request_device()
Verify before relying
- Whether async functions work reliably with standard asyncio/trio patterns in production
- Performance characteristics compared to direct wgpu-native or other GPU frameworks
- Stability of the WebGPU spec implementation as the standard continues to evolve
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 3 packagescffirendercanvasrubicon-objc |
| Maintenance | Actively maintained 26 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 129,092 / month, #11,684 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: wgpu-0.32.0-py3-none-macosx_10_9_x86_64.whl; wgpu-0.32.0-py3-none-macosx_11_0_arm64.whl; wgpu-0.32.0-py3-none-manylinux_2_28_aarch64.whl; wgpu-0.32.0-py3-none-manylinux_2_28_x86_64.whl; wgpu-0.32.0-py3-none-win32.whl; wgpu-0.32.0-py3-none-win_amd64.whl; wgpu-0.32.0-py3-none-win_arm64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “webgpu python binding”
- wgpuwgpu-py provides a Python binding to WebGPU, a modern GPU graphics…
- foundry-local-sdkA Python SDK for discovering, downloading, loading, and running local…
- tinygradtinygrad is a minimal deep learning framework providing a tensor…
Give your agent the search over MCP, or paste the wish link into any chat.
More Graphics packages
Pillow adds image processing capabilities to Python, providing file format support, efficient pixel data handling, and image manipulation operations.
Install it if you need to work with images in Python—it is the de facto standard for this task.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Enables matplotlib figures to display inline directly within Jupyter notebooks and IPython environments instead of in separate windows.
PyMuPDF extracts, renders, converts, and manipulates PDF and other document formats (XPS, EPUB, images, Office files via Pro) with high performance, providing text, tables, images, and metadata with precise layout information.
The AGPL license requires careful review if you are building proprietary software—commercial licensing is available from Artifex.
pypdfium2 is a Python binding to PDFium that enables PDF rendering, inspection, manipulation, and creation through a ctypes interface to Google's PDFium library.
Install it if you need PDF rendering, inspection, or manipulation in Python; the medium install friction is offset by comprehensive platform support.
Altair is a declarative Python library for creating interactive statistical visualizations by writing simple, readable code that compiles to Vega-Lite specifications.
See also moderngl · rendercanvas · pyobjc-framework-Metal · wxPython · pyobjc-framework-MetalKit · pyvips · vispy · pyobjc-framework-MetalPerformanceShaders · pyglet · moderngl-window