cppy
Decision gist · record as of 2026-08-14
Yes, if you are writing C++ Python extensions. Cppy is actively maintained, has no security vulnerabilities, uses a permissive BSD license, and solves a real pain point in extension development. The low install friction makes it a practical choice. If you are not writing C++ extensions, it has no value.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a C++ compiler and Python development headers to build C++ extensions that use cppy.
- Low install friction with a pure wheel distribution.
- The package is actively maintained with recent commits and supports Python 3.7 through 3.13, though it requires setuptools as a runtime dependency.
License · maintenance · safety
permissive license (permissive) — BSD permissive license allows use in commercial and proprietary projects with minimal restrictions, requiring only copyright notice and disclaimer retention.
last release 2025-02-11 (549 days) · last repo commit 2026-08-01 · 89 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 684,160 downloads/mo, #5,358 on PyPI
Alternatives
Verify before relying
# Install cppy
pip install cppy
# In your C++ extension code, include the header:
#include "cppy/cppy.h"
// Use the PyObject smart pointer:
cppy::py_ptr obj(PyList_New(0));- Whether cppy provides additional convenience methods beyond reference counting that are commonly used in extension development.
- Performance characteristics or overhead compared to direct CPython API calls.
- Compatibility with alternative C++ binding frameworks or whether cppy is typically used standalone.
What it is and what it does
Cppy is a header-only C++ library designed to reduce boilerplate when writing Python extension modules in C++. Its core contribution is a PyObject smart pointer that automatically handles Python's reference counting semantics, eliminating manual Py_INCREF and Py_DECREF calls and reducing a common source of memory leaks in C++ extensions. The library also provides convenience methods for typical object operations, making the C++ code more idiomatic and less error-prone.
The package is distributed as a pure Python wheel containing the C++ headers, so installation is straightforward and has no compiled dependencies. It supports modern Python versions and is actively maintained. Developers use it by including the header in their C++ extension code and leveraging the smart pointer and utility methods to write cleaner, safer extension modules.
Use it for
- Writing Python extension modules in C++ where automatic reference counting reduces memory management errors.
- Building performance-critical Python libraries that need C++ implementation with less boilerplate.
- Simplifying PyObject manipulation in C++ code by using convenience methods instead of raw CPython API calls.
- Maintaining C++ extensions across multiple Python versions with a consistent, version-agnostic wrapper.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are writing C++ Python extensions.
Cppy is actively maintained, has no security vulnerabilities, uses a permissive BSD license, and solves a real pain point in extension development. The low install friction makes it a practical choice. If you are not writing C++ extensions, it has no value.
Install
cppy on PyPI
Before you install
Low install friction with a pure wheel distribution. The package is actively maintained with recent commits and supports Python 3.7 through 3.13, though it requires setuptools as a runtime dependency.
Requires a C++ compiler and Python development headers to build C++ extensions that use cppy.
License in practice
BSD permissive license allows use in commercial and proprietary projects with minimal restrictions, requiring only copyright notice and disclaimer retention.
Quickstart
# Install cppy
pip install cppy
# In your C++ extension code, include the header:
#include "cppy/cppy.h"
// Use the PyObject smart pointer:
cppy::py_ptr obj(PyList_New(0));
Verify before relying
- Whether cppy provides additional convenience methods beyond reference counting that are commonly used in extension development.
- Performance characteristics or overhead compared to direct CPython API calls.
- Compatibility with alternative C++ binding frameworks or whether cppy is typically used standalone.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagesetuptools |
| Maintenance | Actively maintained 549 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 684,160 / month, #5,358 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: BSD LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPython |
Evidence: cppy-1.3.1-py3-none-any.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 › “pyobject smart pointer”
- cppyCppy is a C++ header library that simplifies writing Python extension…
- jsonpointerResolves JSON Pointers according to RFC 6901, allowing you to…
- jschonValidates JSON data against JSON Schema (drafts 2019-09 and 2020-12)…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also pybind11 · pybind11-global · CppHeaderParser · PyQt5-sip · sip · PyQt6-sip · recordclass · PyBindGen · pyblock-builder · pyclibrary