Repolode
p-org

p-org/P

Lenguaje de programación basado en máquinas de estados para modelar formalmente y comprobar de forma sistemática la corrección de sistemas distribuidos.

Estrellas
3,721
Forks
225
Issues abiertos
34
Último commit
hace 2 meses

¿Qué es?

P permite a los desarrolladores modelar el diseño de un sistema como un conjunto de máquinas de estados que se comunican y, después, usa motores de razonamiento automatizado para comprobar que el diseño cumple sus especificaciones de corrección. Está dirigido a sistemas distribuidos y controlados por eventos, donde las distintas intercalaciones de mensajes y los fallos hacen que sea difícil detectar errores con las pruebas convencionales.

P Checker explora sistemáticamente los posibles órdenes de los mensajes y los escenarios de fallo para descubrir errores en casos límite. El proyecto también incluye PEx y PVerifier como backends adicionales, una CLI con un compilador que informa de varios errores de tipos en cada pasada, y PObserve, que comprueba los registros de servicios en producción frente a las especificaciones de P. PeasyAI genera máquinas de estados y controladores de pruebas con ayuda de IA, y se integra con Cursor y Claude Code mediante MCP.

El proyecto se mantiene mediante la colaboración entre la industria y el ámbito académico, y el README indica que equipos de AWS lo usan en servicios como S3, DynamoDB y EC2. Se puede instalar mediante NuGet o una imagen de Docker que incluye la CLI y sus dependencias.

Funciones clave

  • 01Modela sistemas como máquinas de estados que se comunican, con especificaciones de seguridad y vivacidad.
  • 02Explora sistemáticamente las intercalaciones de mensajes y los fallos para encontrar errores difíciles de detectar.
  • 03De forma predeterminada, el compilador informa de todos los errores de tipos en una sola pasada; también hay un modo estricto.
  • 04PObserve valida en tiempo de ejecución los registros de servicios frente a las especificaciones de P.
  • 05PeasyAI genera máquinas de estados y controladores de pruebas, y se integra con Cursor y Claude Code mediante MCP.

Casos de uso

  • Verificar el diseño de protocolos distribuidos o las interacciones entre microservicios antes de implementarlos.
  • Encontrar errores de concurrencia y de gestión de fallos que las pruebas de integración no detectan.
  • Comprobar los registros de servicios en producción frente a una especificación formal existente.
  • Usar herramientas de IA para crear borradores de modelos P a partir de documentos de diseño.

Inicio rápido

  1. 1

    Ejecuta la imagen oficial de Docker, que incluye P CLI y sus dependencias

    docker run --rm -it -v "$PWD":/workspace ghcr.io/p-org/p:latest
  2. 2

    Para instalarlo localmente, sigue la guía de instalación del sitio del proyecto

Antes de usarlo

  • La configuración local requiere .NET SDK, JDK, Maven y graphviz, así que usar la imagen de Docker es la opción más sencilla.

En colecciones

Temas

Preguntas frecuentes

¿Qué es P?
Lenguaje de programación basado en máquinas de estados para modelar formalmente y comprobar de forma sistemática la corrección de sistemas distribuidos. P permite a los desarrolladores modelar el diseño de un sistema como un conjunto de máquinas de estados que se comunican y, después, usa motores de razonamiento automatizado para comprobar que el diseño cumple sus especificaciones de corrección. Está dirigido a sistemas distribuidos y controlados por eventos, donde las distintas intercalaciones de mensajes y los fallos hacen que sea difícil detectar errores con las pruebas convencionales.
¿P es gratuito? ¿Qué licencia tiene?
P es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿P sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de P fue el 3 sept 2026.
¿Para qué puedo usar P?
Verificar el diseño de protocolos distribuidos o las interacciones entre microservicios antes de implementarlos. Encontrar errores de concurrencia y de gestión de fallos que las pruebas de integración no detectan. Comprobar los registros de servicios en producción frente a una especificación formal existente. Usar herramientas de IA para crear borradores de modelos P a partir de documentos de diseño.
¿Cómo se instala P?
Ejecuta la imagen oficial de Docker, que incluye P CLI y sus dependencias: docker run --rm -it -v "$PWD":/workspace ghcr.io/p-org/p:latest Para instalarlo localmente, sigue la guía de instalación del sitio del proyecto
¿Dónde consigo P?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/p-org/P

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados