Переносимый runtime для распределённых приложений и AI-агентов: надёжные workflow, безопасное взаимодействие сервисов, управление состоянием и pub/sub через sidecar.
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
Запустите официальный образ Docker, который включает P CLI и его зависимости
docker run --rm -it -v "$PWD":/workspace ghcr.io/p-org/p:latest - 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 обновляется ежедневно.
Похожие проекты
Фреймворк для Go на основе акторной модели, вдохновлённый Erlang/OTP, для создания распределённых систем с супервизией и прозрачным взаимодействием по сети.
Restate — среда выполнения для создания отказоустойчивых приложений с долговечным выполнением, надежной передачей сообщений и состоянием, сохраняющимися при сбоях инфраструктуры.
Инструмент для формальной верификации Rust-кода: он проверяет спецификации для всех возможных выполнений, не добавляя проверок во время работы программы.
Плагин на C++ для Godot 4 с деревьями поведения и иерархическими конечными автоматами, редактором и визуальным отладчиком для создания игрового ИИ.
Асинхронная библиотека логирования и метрик на C++17 с минимальными задержками: форматирование и ввод-вывод выполняются в фоновом потоке.