Implementação das Reactive Extensions para a Java VM, que permite compor programas assíncronos e orientados a eventos com sequências observáveis.
p-org/P
Linguagem de programação baseada em máquinas de estados para modelar formalmente e verificar sistematicamente a correção de sistemas distribuídos.
- Estrelas
- 3,721
- Forks
- 225
- Issues abertas
- 34
- Último commit
- há 2 meses
O que é?
P permite que desenvolvedores modelem o design de um sistema como um conjunto de máquinas de estados que se comunicam e, em seguida, usa mecanismos automatizados de raciocínio para verificar se o design atende às especificações de correção. A linguagem é voltada a sistemas distribuídos e orientados a eventos, nos quais as diferentes ordenações de mensagens e as falhas dificultam encontrar bugs com testes convencionais.
O P Checker explora sistematicamente possíveis ordenações de mensagens e cenários de falha para revelar bugs em casos extremos. O projeto também inclui PEx e PVerifier como backends adicionais, uma CLI com um compilador que relata vários erros de tipo por execução e o PObserve, que verifica logs de serviços em produção com base em especificações P. O PeasyAI oferece geração de máquinas de estados e drivers de teste em P com auxílio de IA, integrando-se ao Cursor e ao Claude Code via MCP.
O projeto é mantido em colaboração entre a indústria e a academia, e o README relata seu uso por equipes da AWS em serviços como S3, DynamoDB e EC2. A instalação está disponível via NuGet ou por uma imagem Docker que inclui a CLI e suas dependências.
Recursos principais
- 01Modela sistemas como máquinas de estados que se comunicam, com especificações de segurança e vivacidade.
- 02Explora sistematicamente diferentes ordenações de mensagens e falhas para encontrar bugs difíceis de detectar.
- 03Por padrão, o compilador relata todos os erros de tipo em uma única execução; também há um modo estrito.
- 04O PObserve valida logs de serviços com base em especificações P em tempo de execução.
- 05O PeasyAI gera máquinas de estados e drivers de teste, integrando-se ao Cursor e ao Claude Code via MCP.
Casos de uso
- Verificar o design de protocolos distribuídos ou interações entre microsserviços antes da implementação.
- Encontrar bugs de concorrência e de tratamento de falhas que passam despercebidos nos testes de integração.
- Verificar logs de serviços em produção com base em uma especificação formal existente.
- Usar ferramentas de IA para criar rascunhos de modelos P a partir de documentos de design.
Início rápido
- 1
Execute a imagem oficial do Docker, que inclui o P CLI e suas dependências
docker run --rm -it -v "$PWD":/workspace ghcr.io/p-org/p:latest - 2
Para instalar localmente, siga o guia de instalação no site do projeto
Antes de usar
- A configuração local exige .NET SDK, JDK, Maven e graphviz, então usar a imagem do Docker é a opção mais simples.
Em coleções
Tópicos
Perguntas frequentes
- O que é P?
- Linguagem de programação baseada em máquinas de estados para modelar formalmente e verificar sistematicamente a correção de sistemas distribuídos. P permite que desenvolvedores modelem o design de um sistema como um conjunto de máquinas de estados que se comunicam e, em seguida, usa mecanismos automatizados de raciocínio para verificar se o design atende às especificações de correção. A linguagem é voltada a sistemas distribuídos e orientados a eventos, nos quais as diferentes ordenações de mensagens e as falhas dificultam encontrar bugs com testes convencionais.
- P é gratuito? Qual é a licença?
- P é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- P ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de P foi em 3 de set. de 2026.
- Para que posso usar P?
- Verificar o design de protocolos distribuídos ou interações entre microsserviços antes da implementação. Encontrar bugs de concorrência e de tratamento de falhas que passam despercebidos nos testes de integração. Verificar logs de serviços em produção com base em uma especificação formal existente. Usar ferramentas de IA para criar rascunhos de modelos P a partir de documentos de design.
- Como instalar P?
- Execute a imagem oficial do Docker, que inclui o P CLI e suas dependências: docker run --rm -it -v "$PWD":/workspace ghcr.io/p-org/p:latest Para instalar localmente, siga o guia de instalação no site do projeto
- Onde consigo P?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/p-org/P
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um runtime portátil que oferece a apps distribuídos e agentes de IA workflows duráveis, segurança entre serviços, estado e pub/sub por meio de um sidecar.
Framework de modelo de atores para Go, inspirado em Erlang/OTP, para criar sistemas distribuídos supervisionados e transparentes à rede.
Restate é um runtime para criar aplicações resilientes com execução durável, troca confiável de mensagens e estado durável, mesmo diante de falhas na infraestrutura.
Ferramenta para verificar formalmente código Rust, checando especificações em todas as execuções possíveis, sem adicionar verificações em tempo de execução.
Plugin em C++ para Godot 4 que adiciona árvores de comportamento e máquinas de estado hierárquicas para criar IA de jogos, com editor e depurador visual.