OmniDiff: Rust ile Geliştirilen Açık Kaynaklı, Süper Hızlı ve İçerik Duyarlı Git Fark Aracı
Kaynak: Hacker News
İçindekiler 4 başlık
OmniDiff: Hızlı, Sağlam ve Doğru Fark Analizi#
Yazılım geliştirme süreçlerinde kod inceleme (code review) ve sürüm kontrolü kalitesini belirleyen en kritik unsurlardan biri, değişikliklerin ne kadar net görülebildiğidir. Standart satır tabanlı diff araçları çoğu zaman yapısal değişiklikleri veya ikili (binary) dosyaları anlamlandırmakta yetersiz kalır. Rust diliyle geliştirilen açık kaynaklı OmniDiff, hızlı, sağlam ve içeriğe duyarlı (content-aware) yapısıyla Git iş akışlarını modernize etmeyi hedefler.
- Sağlam (Robust): Kod değişikliklerinin %99,95'ini sorunsuz bir şekilde karşılaştırabilir.
- İçerik Duyarlı (Content-aware): Değişikliklerin %98,8'ini dosya türüne özel algoritmalar kullanarak analiz eder.
İçerik Türlerine Göre Performans ve Doğruluk#
Intel Core i7-1370P işlemcili ve 32 GB RAM'li bir T14s sistemde yapılan ölçümlere göre (PDF dosyaları 10'dan az test vakasına sahiptir), OmniDiff'in 100 milisaniyenin altında çalışma oranı ve doğruluk metrikleri şu şekildedir:
- Kod (Code): Hızlı (<100ms): %98 | Kusursuz Doğruluk: %70 | Kusursuza Yakın: %92
- Resimler (Pictures): Hızlı (<100ms): %96 | Kusursuz Doğruluk: %69 | Kusursuza Yakın: %91
- İmleçler (Cursors): Hızlı (<100ms): %100 | Kusursuz Doğruluk: %85 | Kusursuza Yakın: %100
- Yazı Tipleri (Fonts): Hızlı (<100ms): %95 | Kusursuz Doğruluk: %82 | Kusursuza Yakın: %100
- Arşivler (Archives): Hızlı (<100ms): %88 | Kusursuz Doğruluk: %87 | Kusursuza Yakın: %87
- Mesaj Katalogları (Message catalogs): Hızlı (<100ms): %100 | Kusursuz Doğruluk: %83 | Kusursuza Yakın: %83
- PDF Dosyaları (PDFs): Hızlı (<100ms): %57 | Kusursuz Doğruluk: %100 | Kusursuza Yakın: %100
Görsel Karşılaştırma ve Geliştirici Deneyimi#
Geliştiriciler için sadece kaynak kodunu değil, projedeki diğer varlıkları da inceleyebilmek büyük bir pratik kazanımdır. OmniDiff; komut satırından kaydedilmiş 20 gerçek kod değişikliğini klasik Unix diff ile yan yana karşılaştırma imkanı sunar. Ayrıca OpenDocument dosyaları, derlenmiş çeviri katalogları, hareketsiz/hareketli görseller, tek bir kutusu yeniden adlandırılmış PDF diyagramları veya 20 ikonu yeniden çizilmiş web fontları gibi karmaşık dosyaları kendi türüne göre analiz eder. Farklı açık ve koyu tema seçenekleriyle de inceleme ergonomisini artırır.
Kurulum Yöntemleri#
OmniDiff'i geliştirme ortamınıza entegre etmek için aşağıdaki 6 farklı kurulum yönteminden birini seçebilirsiniz:
- Kaynaktan Kurulum (From source):
cargo install --locked omnidiffkomutuyla test edilmiş bağımlılıklarla derlenir. Sistemde bir C derleyicisi verustc 1.92veya üzeri bir sürüm gereklidir. Tümtree-sittergramerlerini C'den derlediği velto = "fat"profilini kullandığı için ilk kurulum birkaç dakika sürebilir; bu yaklaşım çalışma zamanında maksimum performans sağlar. - Önceden Derlenmiş İkililer (Prebuilt binaries): Linux, macOS (Intel ve Apple Silicon) ve Windows için hazır çalıştırılabilir dosyalar her GitHub sürümüne eklenmektedir.
- Homebrew: macOS ve Linux ortamlarında
brew install ivankovic/omnidiff/omnidiffkomutuyla hızlıca kurulabilir. - Debian ve Ubuntu:
amd64vearm64mimarileri için imzalı APT deposu üzerinden.debpaketleri olarak kurulabilir (omnidiff-archive-keyring.gpganahtarı eklenipsudo apt update && sudo apt install omnidiffçalıştırılarak). - Nix ve NixOS: Nix kurulu sistemlerde
nix run github:ivankovic/omnidiffkomutuyla doğrudan çalıştırılabilir (flakes aktif değilse--extra-experimental-features 'nix-command flakes'parametresi eklenmelidir). - Arch ve Gentoo: Arch ve Gentoo tabanlı dağıtımlar için özel kurulum tarifleri (recipes) mevcuttur.
Kaynak ve atıf
Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- github.com/ivankovic/omnidiff