Repolode
AhmadHassan-BTed

AhmadHassan-BTed/OpenHeart

Механизм статического анализа кода на Rust, который строит компактные графы программ и генерирует на их основе 19 диаграмм UML и компиляторных IR.

Звёзды
1,980
Форки
0
Открытые issues
3
Последний коммит
3 дня назад

Что это?

OpenHeart — механизм статического анализа программ на Rust. Он разбирает исходный код с помощью tree-sitter, обрабатывает его в 10 этапов и сохраняет результаты в виде бинарных артефактов с отображением в память. В основе лежит Succinct Compositional Program Graph: вместо AST-узлов с большим количеством указателей он использует битовые строки со сбалансированными скобками и индексы rank/select, чтобы экономить память.

На основе этого графа проект строит 19 представлений: 14 диаграмм UML 2.5 (классов, последовательностей, состояний, вариантов использования, развёртывания и другие), а также пять компиляторных IR, включая граф потока управления, граф потока данных, граф зависимостей управления, граф вызовов и сводку путей ROBDD. Результаты можно экспортировать в JSON, PlantUML, Mermaid и XMI.

Веб-студия работает в браузере на GitHub Pages и умеет клонировать и анализировать публичные репозитории GitHub без бэкенда. Тот же механизм можно запустить как CLI или локальный HTTP-сервер.

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

  • 01Строит компактный succinct-граф программы на основе исходного кода, разобранного с помощью tree-sitter.
  • 02Генерирует 14 диаграмм UML 2.5 и 5 графов компиляторных IR.
  • 03Экспортирует диаграммы в JSON, PlantUML, Mermaid и XMI.
  • 04Предоставляет веб-студию для анализа публичных репозиториев GitHub в браузере без бэкенда.
  • 05Позволяет анализировать локальный проект через CLI или запустить локальный веб-сервер.

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

  • Обратная разработка структуры незнакомой кодовой базы с помощью UML-диаграмм.
  • Изучение графов потока управления, потока данных или вызовов в рамках исследований компиляторов и статического анализа.
  • Создание диаграмм PlantUML или Mermaid по существующему коду для документации.

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

  1. 1

    Собрать движок

    cargo build --release
  2. 2

    Проанализировать кодовую базу

    target/release/openheart analyze ./my_project ./output_dir
  3. 3

    Запустить веб-сервер и studio

    target/release/openheart server 8080

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

  • Для сборки движка из исходного кода требуется тулчейн Rust (версии 1.75 или новее).
  • В README не описана точность анализа, за исключением заявлений о собственных бенчмарках.

Темы

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

Что такое OpenHeart?
Механизм статического анализа кода на Rust, который строит компактные графы программ и генерирует на их основе 19 диаграмм UML и компиляторных IR. OpenHeart — механизм статического анализа программ на Rust. Он разбирает исходный код с помощью tree-sitter, обрабатывает его в 10 этапов и сохраняет результаты в виде бинарных артефактов с отображением в память. В основе лежит Succinct Compositional Program Graph: вместо AST-узлов с большим количеством указателей он использует битовые строки со сбалансированными скобками и индексы rank/select, чтобы экономить память.
OpenHeart можно использовать бесплатно? Какая у него лицензия?
OpenHeart распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
OpenHeart всё ещё поддерживается?
Активно поддерживается. Последний коммит в OpenHeart — 17 окт. 2026 г..
Для чего можно использовать OpenHeart?
Обратная разработка структуры незнакомой кодовой базы с помощью UML-диаграмм. Изучение графов потока управления, потока данных или вызовов в рамках исследований компиляторов и статического анализа. Создание диаграмм PlantUML или Mermaid по существующему коду для документации.
Как установить OpenHeart?
Собрать движок: cargo build --release Проанализировать кодовую базу: target/release/openheart analyze ./my_project ./output_dir Запустить веб-сервер и studio: target/release/openheart server 8080
Где скачать OpenHeart?
Исходный код и инструкции по установке — на GitHub: https://github.com/AhmadHassan-BTed/OpenHeart

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

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