pyobjc-framework-Metal
Wrappers for the framework Metal on macOS
What it is and what it does
pyobjc-framework-metal is a Python wrapper around Apple's Metal graphics and compute framework, part of the larger PyObjC project that bridges Python and Objective-C. It allows Python developers on macOS to access Metal's low-level GPU APIs for graphics rendering, compute shaders, and hardware acceleration without dropping to C or Objective-C.
The package is a thin binding layer—it does not provide high-level abstractions or documentation of its own, instead exposing Metal's native API surface directly. Users must consult Apple's Metal documentation to understand the framework's capabilities and PyObjC's documentation for Python-to-Objective-C translation patterns. It depends on pyobjc-core and pyobjc-framework-Cocoa, and runs only on macOS with Python 3.10 or later.
Use it for:
- Build GPU-accelerated graphics applications on macOS using Metal's native rendering pipeline from Python.
- Implement compute shaders and parallel algorithms that run on the GPU via Metal's compute API.
- Prototype or integrate Metal-based graphics features into existing Python applications on macOS.
- Access hardware-specific GPU capabilities and performance optimizations available only through Metal.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides Python bindings to Apple's Metal graphics framework on macOS, enabling low-level GPU programming and graphics acceleration from Python.
Yes, if you are developing on macOS and need direct access to Metal's GPU capabilities from Python. The package is actively maintained, has no known vulnerabilities, and carries a permissive license. Install friction is moderate due to platform specificity and dependency chain, but wheels are available for current Python versions. Not applicable on Windows or Linux.
Install
pyobjc-framework-metal on PyPI
pip
pip install pyobjc-framework-metaluv
uv add pyobjc-framework-metalpoetry
poetry add pyobjc-framework-metalInstalling pyobjc-framework-Metal
Before you install
Medium install friction: platform-specific wheels for macOS only (universal2 binaries across Python 3.10–3.15), requires pyobjc-core and pyobjc-framework-Cocoa as runtime dependencies. Active maintenance with recent releases (3 days old as of fact sheet date).
License in practice
MIT license (permissive): you may use, modify, and distribute this package freely in commercial and private projects, with minimal restrictions.
Quickstart
pip install pyobjc-framework-metal
import Metal
device = Metal.MTLCreateSystemDefaultDevice()
command_queue = device.newCommandQueue()
macOS only; requires Python 3.10 or later; Metal framework is a native macOS feature with no Windows or Linux equivalent.
Verify before relying
- Whether pre-built wheels cover all intended macOS versions and architectures beyond those listed in the fact sheet.
- Performance characteristics and typical use patterns for GPU workloads via this binding layer.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — pyobjc-core, pyobjc-framework-Cocoa |
| Maintenance | actively maintained — 3 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 693,642/month — #5,314 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyobjc_framework_metal-12.2.2-cp310-cp310-macosx_10_9_universal2.whl; pyobjc_framework_metal-12.2.2-cp311-cp311-macosx_10_9_universal2.whl; pyobjc_framework_metal-12.2.2-cp312-cp312-macosx_10_13_universal2.whl; pyobjc_framework_metal-12.2.2-cp313-cp313-macosx_10_13_universal2.whl; pyobjc_framework_metal-12.2.2-cp313-cp313t-macosx_10_13_universal2.whl; pyobjc_framework_metal-12.2.2-cp314-cp314-macosx_10_15_universal2.whl; pyobjc_framework_metal-12.2.2-cp314-cp314t-macosx_10_15_universal2.whl; pyobjc_framework_metal-12.2.2-cp315-cp315-macosx_10_15_universal2.whl; pyobjc_framework_metal-12.2.2-cp315-cp315t-macosx_10_15_universal2.whl
Keywords: PyObjC, Metal
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
metal-sdkPython client library for indexing and querying…
permissive · top 15,000 on PyPI
pyobjc-framework-MetalFXProvides Python bindings to Apple's MetalFX…
permissive · top 15,000 on PyPI
pyobjc-framework-MetalKitProvides Python bindings for Apple's MetalKit…
permissive · top 15,000 on PyPI
pyobjc-framework-MetalPerformanceShadersProvides Python bindings to Apple's…
permissive · top 15,000 on PyPI
pyobjc-framework-MetalPerformanceShadersGraphProvides Python bindings to Apple's…
permissive · top 15,000 on PyPI
pyobjc-framework-ModelIOProvides Python bindings to Apple's ModelIO…
permissive · top 15,000 on PyPI
pyobjc-framework-QuartzProvides Python bindings to macOS Quartz…
permissive · top 5,000 on PyPI
pyobjc-framework-NetworkProvides Python bindings to Apple's Network…
permissive · top 15,000 on PyPI
wgpuwgpu-py provides a Python binding to WebGPU, a…
permissive · top 15,000 on PyPI
hip-pythonProvides low-level Python and Cython bindings…
permissive · top 15,000 on PyPI