PyO3 / PyO3/pyo3

Provide support for HPy

Open
#1,113 12 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs-design
Dominant language
Rust
Stars
16.2k
Forks
1k
Avg merge
2d 6h
Merged PRs (30d)
66

Description

HPy is a better Python API written in C.
The project's goal is to hide CPython's implementation details so that any Python implementation will be able to support C extensions with ease.

One of the main goals of the project is to allow PyPy to support C extensions without emulating CPython's API.

We should consider providing a backend that uses HPy instead of directly using the CPython API.
We can use a feature toggle to activate it.

Since HPy's API can be mixed with CPython's API we can gradually migrate more and more code to HPy's API as it evolves.

A first attempt to provide Rust bindings to HPy was made in pyhandle/hpy#20.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue does not name files, tests, or an entry point. Start by reviewing PyO3's existing Python C API bindings and the HPy project, including the Rust bindings attempt referenced in pyhandle/hpy#20. Define the backend and feature-toggle scope before implementation; done requires an agreed design and working HPy coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, python, rust
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.