git의 기본 pager를 대체하도록 설정할 수 있는, git·diff·grep·blame 출력을 위한 구문 강조 pager입니다.
ivankovic/omnidiff
tree-sitter로 코드를 구조적으로 비교하고 이미지, 폰트, 아카이브, PDF도 비교하는 Rust 기반 콘텐츠 인식 diff 도구입니다.
- 스타
- 1,168
- 포크
- 28
- 열린 이슈
- 9
- 마지막 커밋
- 6시간 전
어떤 프로젝트인가요?
OmniDiff는 파일 형식에 따라 비교 방식을 선택하는 CLI 및 터미널 diff 도구입니다. 25개 언어의 소스 코드는 tree-sitter 문법으로 파싱해, 줄 전체를 삭제 및 추가로 표시하는 대신 이름이 바뀐 표현식처럼 실제로 변경된 부분만 강조합니다. 확장자를 알 수 없는 파일은 일반 텍스트로 비교합니다.
텍스트가 아닌 파일은 이름이 아니라 콘텐츠를 기준으로 처리합니다. 이미지는 픽셀 단위로, 애니메이션은 프레임 단위로 비교합니다. 폰트는 글리프 단위로, 아카이브는 파일 단위로, PDF는 페이지 단위로 비교하고, 각 변경 사항에는 독자가 얼마나 눈에 띄게 알아차릴 수 있는지 표시합니다. 그 밖의 바이너리 파일은 두 파일이 다르다는 한 줄 알림으로 표시합니다.
OmniDiff는 두 패널을 사용하는 인터랙티브 뷰어, 스크립트와 CI용 일반 텍스트 또는 JSON 출력으로 실행할 수 있으며, git difftool, GIT_EXTERNAL_DIFF를 통한 git diff, Jujutsu (jj)의 백엔드로도 사용할 수 있습니다. Cargo, Homebrew, apt, Nix 및 Linux, macOS, Windows용 사전 빌드 바이너리로 설치할 수 있습니다.
핵심 기능
- 01tree-sitter 문법을 사용해 25개 프로그래밍 및 마크업 언어의 구조적 diff를 제공합니다.
- 02애니메이션 프레임을 포함해 이미지를 픽셀 단위로 비교합니다.
- 03폰트는 글리프 단위로, PDF는 페이지 단위로 비교합니다.
- 04중첩 아카이브를 포함해 아카이브를 파일 단위로 비교합니다.
- 05인터랙티브 TUI, 헤드리스 텍스트 출력, JSON 출력을 지원합니다.
- 06git difftool, git diff, Jujutsu (jj)와 연동합니다.
활용 사례
- 몇몇 표현식만 바뀐 코드 리팩터링을 검토할 때.
- git으로 관리하는 폰트, 아이콘 세트 또는 PDF 다이어그램의 변경 사항을 확인할 때.
- 기계가 읽을 수 있는 diff 출력이 필요한 스크립트나 CI 파이프라인에서 사용할 때.
- 기본 git difftool을 구문을 인식하는 뷰어로 교체할 때.
빠른 시작
- 1
Homebrew로 설치(macOS 및 Linux)
brew install ivankovic/omnidiff/omnidiff - 2
또는 Cargo로 소스에서 빌드(C 컴파일러와 Rust 1.92 이상 필요)
cargo install --locked omnidiff - 3
대화형 뷰어에서 파일 두 개 열기
omnidiff BEFORE AFTER
사용 전 알아둘 점
- README 배지에는 카피레프트 라이선스인 AGPL-3.0-only가 표시되어 있지만, 저장소 메타데이터에서는 감지된 라이선스가 없습니다.
- 소스에서 빌드하려면 C 컴파일러와 Rust 1.92 이상이 필요하며, 처음 cargo install을 실행할 때는 몇 분 정도 걸립니다.
포함된 컬렉션
토픽
자주 묻는 질문
- omnidiff은(는) 무엇인가요?
- tree-sitter로 코드를 구조적으로 비교하고 이미지, 폰트, 아카이브, PDF도 비교하는 Rust 기반 콘텐츠 인식 diff 도구입니다. OmniDiff는 파일 형식에 따라 비교 방식을 선택하는 CLI 및 터미널 diff 도구입니다. 25개 언어의 소스 코드는 tree-sitter 문법으로 파싱해, 줄 전체를 삭제 및 추가로 표시하는 대신 이름이 바뀐 표현식처럼 실제로 변경된 부분만 강조합니다. 확장자를 알 수 없는 파일은 일반 텍스트로 비교합니다.
- omnidiff은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- omnidiff은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- omnidiff은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. omnidiff의 마지막 커밋은 2026년 11월 6일입니다.
- omnidiff은(는) 어디에 사용할 수 있나요?
- 몇몇 표현식만 바뀐 코드 리팩터링을 검토할 때. git으로 관리하는 폰트, 아이콘 세트 또는 PDF 다이어그램의 변경 사항을 확인할 때. 기계가 읽을 수 있는 diff 출력이 필요한 스크립트나 CI 파이프라인에서 사용할 때. 기본 git difftool을 구문을 인식하는 뷰어로 교체할 때.
- omnidiff는 어떻게 설치하나요?
- Homebrew로 설치(macOS 및 Linux): brew install ivankovic/omnidiff/omnidiff 또는 Cargo로 소스에서 빌드(C 컴파일러와 Rust 1.92 이상 필요): cargo install --locked omnidiff 대화형 뷰어에서 파일 두 개 열기: omnidiff BEFORE AFTER
- omnidiff은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/ivankovic/omnidiff
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
터미널에서 GitHub 스타일의 구문 강조를 적용해 diff를 좌우로 나란히 보여주는 git 페이저입니다.
줄 단위가 아닌 구문 트리로 파일을 비교해, 서식 변경과 코드 이동도 정확히 보여주는 CLI diff 도구입니다.
Git, Jujutsu, Sapling, GitHub PR, 원시 파일의 코드 변경 사항을 검토하고 인라인 에이전트 노트를 추가할 수 있는 인터랙티브 터미널 diff 뷰어입니다.
AI 프롬프트로 복사할 수 있는 댓글을 지원하는 로컬 GitHub 스타일 diff 리뷰 CLI 도구
구문 강조, Git 변경 표시, 자동 페이징을 지원하는 터미널용 cat(1) 클론입니다.