Repolode
p-org

p-org/P

Язык программирования на основе конечных автоматов для формального моделирования и систематической проверки корректности распределённых систем.

Звёзды
3,721
Форки
225
Открытые issues
34
Последний коммит
2 месяца назад

Что это?

P позволяет разработчикам моделировать архитектуру системы как набор взаимодействующих конечных автоматов, а затем с помощью средств автоматического анализа проверять её соответствие требованиям корректности. Язык предназначен для распределённых систем и систем, управляемых событиями, где из-за возможных порядков доставки сообщений и сбоев трудно находить ошибки обычным тестированием.

P Checker систематически исследует возможные порядки доставки сообщений и сценарии сбоев, чтобы выявлять ошибки в граничных случаях. В проект также входят дополнительные бэкенды PEx и PVerifier, CLI с компилятором, который за один проход сообщает о нескольких ошибках типов, и PObserve, проверяющий логи рабочих сервисов на соответствие спецификациям P. PeasyAI помогает генерировать конечные автоматы P и тестовые драйверы с помощью ИИ и интегрируется с Cursor и Claude Code через MCP.

Проект развивается в сотрудничестве индустрии и академических кругов. В README говорится, что команды AWS используют его в таких сервисах, как S3, DynamoDB и EC2. Установить его можно через NuGet или из Docker-образа, в который входят CLI и необходимые зависимости.

Ключевые возможности

  • 01Моделирование систем в виде взаимодействующих конечных автоматов с требованиями безопасности и живости.
  • 02Систематический перебор возможных порядков доставки сообщений и сбоев для поиска трудноуловимых ошибок.
  • 03Компилятор по умолчанию сообщает обо всех ошибках типов за один проход; также доступен строгий режим.
  • 04PObserve проверяет логи сервисов на соответствие спецификациям P во время выполнения.
  • 05PeasyAI генерирует конечные автоматы и тестовые драйверы с помощью ИИ и интегрируется с Cursor и Claude Code через MCP.

Сценарии использования

  • Проверка архитектуры распределённых протоколов или взаимодействия микросервисов до реализации.
  • Поиск ошибок параллелизма и обработки сбоев, которые не выявляются интеграционными тестами.
  • Проверка логов рабочих сервисов на соответствие уже существующей формальной спецификации.
  • Создание черновиков моделей P по проектной документации с помощью инструментов ИИ.

Быстрый старт

  1. 1

    Запустите официальный образ Docker, который включает P CLI и его зависимости

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

    Для локальной установки следуйте инструкции по установке на сайте проекта

Что важно знать

  • Для настройки локального окружения нужны .NET SDK, JDK, Maven и graphviz, поэтому использовать образ Docker проще.

В подборках

Темы

Частые вопросы

Что такое P?
Язык программирования на основе конечных автоматов для формального моделирования и систематической проверки корректности распределённых систем. P позволяет разработчикам моделировать архитектуру системы как набор взаимодействующих конечных автоматов, а затем с помощью средств автоматического анализа проверять её соответствие требованиям корректности. Язык предназначен для распределённых систем и систем, управляемых событиями, где из-за возможных порядков доставки сообщений и сбоев трудно находить ошибки обычным тестированием.
P можно использовать бесплатно? Какая у него лицензия?
P распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
P всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в P — 3 сент. 2026 г..
Для чего можно использовать P?
Проверка архитектуры распределённых протоколов или взаимодействия микросервисов до реализации. Поиск ошибок параллелизма и обработки сбоев, которые не выявляются интеграционными тестами. Проверка логов рабочих сервисов на соответствие уже существующей формальной спецификации. Создание черновиков моделей P по проектной документации с помощью инструментов ИИ.
Как установить P?
Запустите официальный образ Docker, который включает P CLI и его зависимости: docker run --rm -it -v "$PWD":/workspace ghcr.io/p-org/p:latest Для локальной установки следуйте инструкции по установке на сайте проекта
Где скачать P?
Исходный код и инструкции по установке — на GitHub: https://github.com/p-org/P

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Restate — среда выполнения для создания отказоустойчивых приложений с долговечным выполнением, надежной передачей сообщений и состоянием, сохраняющимися при сбоях инфраструктуры.

4,6 тыс.+8 за неделю226RustOtherОбновлён 13 часов назад

Инструмент для формальной верификации Rust-кода: он проверяет спецификации для всех возможных выполнений, не добавляя проверок во время работы программы.

3,4 тыс.+37 за неделю239RustMITОбновлён 3 часа назад