sip
A Python bindings generator for C/C++ libraries
Decision gist · record as of 2026-08-14
Yes. SIP is actively maintained, has low install friction, carries no known vulnerabilities, and is permissively licensed. Install it if you need to generate Python bindings for C/C++ libraries or if you are using a package (like PyQt) that depends on it. Not needed for pure-Python development.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Building bindings requires a C/C++ compiler and the corresponding library headers for the target C/C++ library.
- Low install friction with a pure-Python wheel distribution.
License · maintenance · safety
BSD-2-Clause (permissive) — Licensed under BSD-2-Clause (permissive), allowing commercial and private use with minimal restrictions. Includes a bundled copy of ply under BSD-3-Clause, also permissive.
last release 2026-08-02 (12 days) · last repo commit 2026-08-13 · 63 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 219,581 downloads/mo, #9,324 on PyPI
Alternatives
Verify before relying
pip install sip
# Then use the sip build tool to process .sip specification files
# and generate C/C++ code that compiles into Python extension modules.
# The sip module is imported by the generated bindings at runtime.- Whether the package includes pre-built wheels for all major platforms or requires compilation from source on some systems.
- Performance characteristics or benchmarks for generated bindings compared to other binding generators.
- Maturity and stability guarantees for the 6.16.0 release series.
What it is and what it does
SIP is a toolchain for generating Python bindings that expose C and C++ libraries as Python extension modules. It processes human-readable `.sip` specification files (which resemble C/C++ headers) and generates the glue code needed to bridge Python and compiled C/C++ code. The generated modules can be packaged and distributed independently, and SIP includes a runtime module that provides support functions to the generated bindings.
Developers use SIP to either wrap existing C/C++ libraries for use in Python (as done for PyQt and wxPython) or to selectively reimplement performance-critical parts of Python applications in C/C++. The workflow involves writing or editing `.sip` files to describe the library interface, then using SIP's build tools to compile those specifications into extension modules.
Use it for
- Wrapping a C/C++ library like Qt or wxWidgets to make it available as a Python package.
- Creating Python bindings for a custom C/C++ library to use in a Python application.
- Rewriting performance-critical sections of a Python application in C/C++ and exposing them via bindings.
- Distributing compiled extension modules as part of a Python package across multiple Python versions.
- Generating bindings that remain independent of the Python version used (for extension modules).
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
SIP is actively maintained, has low install friction, carries no known vulnerabilities, and is permissively licensed. Install it if you need to generate Python bindings for C/C++ libraries or if you are using a package (like PyQt) that depends on it. Not needed for pure-Python development.
Install
sip on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a release 12 days ago. Requires Python 3.10 or later and depends on three lightweight runtime packages: packaging, setuptools, and tomli.
Requires Python 3.10 or later. Building bindings requires a C/C++ compiler and the corresponding library headers for the target C/C++ library.
License in practice
Licensed under BSD-2-Clause (permissive), allowing commercial and private use with minimal restrictions. Includes a bundled copy of ply under BSD-3-Clause, also permissive.
Quickstart
pip install sip
# Then use the sip build tool to process .sip specification files
# and generate C/C++ code that compiles into Python extension modules.
# The sip module is imported by the generated bindings at runtime.
Verify before relying
- Whether the package includes pre-built wheels for all major platforms or requires compilation from source on some systems.
- Performance characteristics or benchmarks for generated bindings compared to other binding generators.
- Maturity and stability guarantees for the 6.16.0 release series.
Package facts
| License | BSD-2-Clause permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagespackagingsetuptoolstomli |
| Maintenance | Actively maintained 12 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 219,581 / month, #9,324 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: sip-6.16.0-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 › “sip specification bindings”
- sipSIP generates Python bindings for C and C++ libraries by processing…
- PyQt6-sipPyQt6-sip provides the runtime support module for PyQt6, enabling…
- PyQt5-sipPyQt5-sip provides the runtime support module for PyQt5 bindings,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also PyQt5-sip · PyQt6-sip · pcpp · PyQt-builder · CppHeaderParser · PyQt6 · PyQt5 · cppy · wxPython · dbus-python