Volver al Blog
Herramientas para Desarrolladores 25 de abril de 2026 5 min read

Rust Llega a CPython — Objetivo Python 3.16, Borrador del PEP en Junio de 2026

El equipo de integración de Rust en CPython confirmó en su actualización de abril de 2026 que los builds de CI ya pasan en todas las plataformas. El borrador del PEP llega en junio–julio de 2026, con la beta de Python 3.16 en mayo de 2027 y la versión final en octubre de 2027. No se necesita compilador Rust para construir ni ejecutar Python.

Rust Llega a CPython — Objetivo Python 3.16, Borrador del PEP en Junio de 2026

CPython va a incorporar Rust. La actualización de progreso de abril de 2026 del equipo de integración confirma que el fork ya compila correctamente en todas las plataformas probadas, y este mes comienza el trabajo activo en el diseño de la API Rust interna. El objetivo es Python 3.16, previsto para octubre de 2027.

El enfoque técnico es deliberadamente conservador. El crate cpython-sys actúa como puente entre C y Rust, con bindgen generando automáticamente los bindings Rust a partir de las cabeceras C existentes de CPython. Todas las dependencias Rust se empaquetarán mediante Cargo y se distribuirán con el árbol fuente de CPython — lo que significa que no necesitarás un compilador Rust instalado para construir Python ni para ejecutar programas Python. El cambio es optativo por diseño, y en un principio Rust solo impulsará módulos de extensión opcionales. Los desarrolladores de extensiones C existentes no tienen que tocar nada.

La hoja de ruta:

  • Junio–Julio 2026: Borrador del PEP publicado para comentarios de la comunidad
  • Mayo 2027: Python 3.16 beta 1
  • Octubre 2027: Versión completa de Python 3.16

Guido van Rossum ha señalado su apoyo a la dirección, lo que tiene un peso significativo dada la sensibilidad de la comunidad ante cambios de esta escala.

¿Por qué Rust? La motivación principal es la seguridad de memoria. La base de código C de CPython ha acumulado décadas de gestión de memoria compleja, casos extremos de conteo de referencias y comportamientos indefinidos. El modelo de propiedad de Rust elimina categorías enteras de estos errores en tiempo de compilación. El runtime de Python lo utilizan cientos de millones de desarrolladores; cada CVE causado por un use-after-free o un desbordamiento de búfer en el propio CPython es un riesgo sistémico.

Este es el cambio estructural más significativo en las entrañas de CPython desde que la eliminación del GIL llegó en Python 3.13. La eliminación del GIL cambió la semántica de concurrencia; la integración de Rust cambia el lenguaje en que está escrito el núcleo de Python. El alcance es mayor y los plazos son más largos, pero el trabajo de base ya está hecho — que el CI pase en todas las plataformas es la parte más difícil de cualquier integración de sistema de build políglota.

La elección de la cadena de herramientas importa. Usar bindgen para generar automáticamente los bindings Rust desde las cabeceras C significa que el código Rust permanece sincronizado con la API C de CPython de forma automática, en lugar de requerir declaraciones FFI mantenidas a mano. El vendoring con Cargo garantiza builds reproducibles sin acceso a la red — un requisito para cualquier despliegue en producción serio o auditoría de seguridad.

Para la mayoría de los desarrolladores Python, el impacto práctico de la versión 3.16 será invisible al principio: el mismo binario python3, el mismo ecosistema de paquetes, las mismas características de rendimiento. Las mejoras llegarán de forma incremental a medida que más rutas críticas y código sensible a la seguridad de CPython migren a Rust en versiones posteriores.

La comunidad Python ha observado la adopción de Rust en todo el ecosistema de la biblioteca estándar — uv, ruff y maturin han demostrado que la interoperabilidad entre Rust y Python funciona bien en la práctica. Llevarlo al propio CPython es el siguiente paso lógico, y el equipo parece estar ejecutándolo con el cuidado adecuado.

python rust cpython herramientas-desarrollador open-source