Repolode
AhmadHassan-BTed

AhmadHassan-BTed/OpenHeart

Rust 정적 분석 엔진으로, 소스 코드에서 컴팩트한 프로그램 그래프를 만들고 이를 바탕으로 UML 및 컴파일러 IR 다이어그램 19종을 생성합니다.

스타
1,980
포크
0
열린 이슈
3
마지막 커밋
3일 전

어떤 프로젝트인가요?

OpenHeart는 Rust로 작성된 정적 프로그램 분석 엔진입니다. tree-sitter로 소스 코드를 파싱하고, 10단계 파이프라인을 거쳐 결과를 메모리 매핑 바이너리 아티팩트로 저장합니다. 핵심 표현 방식인 Succinct Compositional Program Graph는 포인터를 많이 사용하는 AST 노드 대신 균형 괄호 비트 문자열과 rank/select 인덱스를 사용해 메모리 사용량을 낮춥니다.

프로젝트는 이 그래프에서 19가지 투영 결과를 생성합니다. UML 2.5 다이어그램 14종(클래스, 시퀀스, 상태 머신, 유스케이스, 배포 등)과 컴파일러 IR 5종(제어 흐름 그래프, 데이터 흐름 그래프, 제어 의존성 그래프, 호출 그래프, ROBDD 경로 요약)이 포함됩니다. JSON, PlantUML, Mermaid, XMI 형식으로 출력할 수 있습니다.

웹 스튜디오는 GitHub Pages에서 브라우저로 실행되며, 백엔드 없이 공개 GitHub 저장소를 복제하고 분석할 수 있습니다. 같은 엔진을 CLI나 로컬 HTTP 서버로도 실행할 수 있습니다.

핵심 기능

  • 01tree-sitter 파싱을 사용해 소스 코드에서 간결한 축약 프로그램 그래프를 생성합니다.
  • 02UML 2.5 다이어그램 14종과 컴파일러 IR 그래프 5종을 생성합니다.
  • 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 정적 분석 엔진으로, 소스 코드에서 컴팩트한 프로그램 그래프를 만들고 이를 바탕으로 UML 및 컴파일러 IR 다이어그램 19종을 생성합니다. OpenHeart는 Rust로 작성된 정적 프로그램 분석 엔진입니다. tree-sitter로 소스 코드를 파싱하고, 10단계 파이프라인을 거쳐 결과를 메모리 매핑 바이너리 아티팩트로 저장합니다. 핵심 표현 방식인 Succinct Compositional Program Graph는 포인터를 많이 사용하는 AST 노드 대신 균형 괄호 비트 문자열과 rank/select 인덱스를 사용해 메모리 사용량을 낮춥니다.
OpenHeart은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
OpenHeart은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
OpenHeart은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. OpenHeart의 마지막 커밋은 2026년 10월 17일입니다.
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를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트