Skip to content

Python 3.16 Rust Integration Timeline: When Will CPython Include Rust Code?

Python 3.16 is now the target version for the first Rust code inclusion in CPython. After initially aiming for Python 3.15, the Rust for CPython team shifted their timeline to allow more time for implementation refinement and the required PEP discussion period.

The Direct Answer

Python 3.16, scheduled for beta 1 in May 2027, is when we expect to see the first official Rust code in CPython. The team plans to submit a PEP in July 2026, kicking off what will likely be a lengthy discussion process before the beta deadline.

Timeline Milestones

Here’s the roadmap the Rust for CPython team is following:

March 2026 Build system work completed
April 2026 Planning internal Rust API
Selecting first extension module
May 2026 Finalizing API plan
Starting implementation
PyCon US sprint
June 2026 Begin writing the PEP
July 2026 Submit PEP for discussion
May 2027 Python 3.16 beta 1 deadline

Why the Shift from 3.15 to 3.16

I understand why the team needed this extra year. Integrating Rust into a C-based codebase like CPython isn’t just about writing Rust code—it’s about establishing patterns, APIs, and tooling that will serve the project for years to come.

The team explicitly stated they needed “a year to make the reference implementation the best it can be.” This makes sense because the first Rust module in CPython will set the precedent for all future Rust integrations. If the foundation is rushed, every subsequent module will inherit those shortcuts.

The PEP Process Explained

Before any Rust code becomes official in CPython, it must go through the Python Enhancement Proposal process. Here’s how that works:

  1. PEP Submission: The team will submit a detailed proposal in July 2026 covering the technical design, API boundaries, and migration strategy.

  2. Discussion Period: This is where the community gets involved. The Python community is thorough—PEP discussions can last months, especially for something as significant as adding a new language to the core runtime.

  3. Acceptance or Revision: The PEP might be accepted as-is, sent back for revisions, or even rejected. Each outcome affects the timeline.

The PEP discussion period is the variable that makes predicting exact dates difficult. If consensus comes quickly, the integration could happen earlier. If disagreements arise, it could push into Python 3.17.

What Gets Implemented First

In Python 3.16, only one extension module will have a Rust implementation. This is intentional—it’s a proof of concept to validate the approach before expanding to other modules.

The team hasn’t publicly announced which module yet, but the criteria likely include:

  • A module with clear, bounded functionality
  • A module where Rust’s safety and performance benefits are visible
  • A module that doesn’t break existing Python APIs

Key Milestones to Watch

If you’re tracking this development, these are the dates that matter:

  • July 2026: PEP submission—this is when the real discussion starts
  • Late 2026: PEP acceptance status—this determines if 3.16 stays on track
  • May 2027: Beta 1 deadline—if Rust code isn’t in by then, it slips to 3.17

My Take on the Timeline

I think the shift to 3.16 is prudent. Rushing Rust integration into a project as critical as CPython would be a mistake. The extra year gives the team time to:

  • Build robust tooling that other developers can use
  • Establish clear patterns for future Rust modules
  • Get community buy-in through a well-considered PEP

The build system work being complete by March 2026 is a positive sign—that means the team can focus purely on implementation and documentation rather than fighting build issues.

References

[1] Rust for CPython: 2026 April Update - https://blog.python.org/2026/04/rust-for-cpython-2026-04/

[2] Rust for CPython Project - https://github.com/RustPython/cpython-rust

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments