pyobjc-framework-Metal
Wrappers for the framework Metal on macOS
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- macOS only; requires Python 3.10 or later; Metal framework is a native macOS feature with no Windows or Linux equivalent.
- 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 · maintenance · safety
MIT (permissive) — MIT license (permissive): you may use, modify, and distribute this package freely in commercial and private projects, with minimal restrictions.
last release 2026-08-11 (3 days) · last repo commit 2026-08-14 · 803 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 693,642 downloads/mo, #5,314 on PyPI
Alternatives
Verify before relying
pip install pyobjc-framework-metal
import Metal
device = Metal.MTLCreateSystemDefaultDevice()
command_queue = device.newCommandQueue()- 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.
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 on it.
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
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).
macOS only; requires Python 3.10 or later; Metal framework is a native macOS feature with no Windows or Linux equivalent.
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()
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 packagespyobjc-corepyobjc-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 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: MacOS X :: CocoaIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: MacOS :: MacOS XProgramming Language :: Objective CProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Programming Language :: Python :: Free Threading :: 3 - StableProgramming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: User Interfaces |
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
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 › “metal framework python bindings”
- pyobjc-framework-MetalProvides Python bindings to Apple's Metal graphics framework on…
- pyobjc-framework-MetalPerformanceShadersGraphProvides Python bindings to Apple's MetalPerformanceShadersGraph…
- pyobjc-framework-MetalKitProvides Python bindings for Apple's MetalKit framework on macOS,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also metal-sdk · pyobjc-framework-MetalFX · pyobjc-framework-MetalKit · pyobjc-framework-MetalPerformanceShaders · pyobjc-framework-MetalPerformanceShadersGraph · pyobjc-framework-ModelIO · pyobjc-framework-Quartz · pyobjc-framework-Network · wgpu · hip-python