Компилятор анализирует Rails-приложения на Ruby и создаёт автономные проекты на Rust, Go, TypeScript, Elixir и других языках либо нативный бинарный файл Spinel.
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
Собрать движок
cargo build --release - 2
Проанализировать кодовую базу
target/release/openheart analyze ./my_project ./output_dir - 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 обновляется ежедневно.
Похожие проекты
Локальный граф знаний о коде, который помогает AI-инструментам точнее проводить ревью через MCP и CLI.
Генератор инкрементальных парсеров и библиотека для построения конкретных синтаксических деревьев и их обновления при редактировании исходного кода.
Экспериментальный порт компилятора TypeScript 7 на Rust (tsc) с теми же CLI, language server и API, а также встроенной диагностикой Effect.
Порт компилятора и языкового сервера TypeScript 7 на Rust — готовая замена для проверки типов и генерации кода.
Терминальная игра на скорость печати, которая превращает ваш код или открытые репозитории GitHub в задания для тренировки.