Ana içeriğe geç
Programlama

Walgit nesne depolama tabanlı Git sunucusu mimarisini sundu

Öne çıkanlar

  • Walgit, S3 veya GCS üzerinde yerel durum tutmayan tek bir Rust ikili dosyası olarak çalışıyor.
  • Bütün itme işlemleri nesne deposundaki bildirim dosyasına uygulanan atomik güncelleme ile kesinleşiyor.
  • Paket URI desteği sayesinde yeni klonlama işlemleri statik dosyalar halinde depodan sunuluyor.

Açık kaynaklı yeni bir Git sunucusu olan Walgit, herhangi bir veri tabanı, lider seçimi veya yerel durum bağımlılığı olmaksızın doğrudan nesne depolama birimleri üzerinden çalışıyor. Rust diliyle geliştirilen yazılım, S3 uyumlu sistemleri ve Google Cloud Storage platformunu temel alıyor. Sunucu üzerinde yerel disk yalnızca tek kullanımlık bir önbellek vazifesi görüyor; deponun asıl kaynağı ise nesne deposundaki yazma öncelikli günlük (WAL) dosyalarından oluşuyor.

Sistem, Cursor tarafından Continuity mimarisinde ortaya konan yaklaşımı uygulayarak donanım sınırlarını aşıyor. İtme işlemleri nesne deposuna yazıldıktan sonra küçük bir bildirimin atomik olarak güncellenmesiyle görünür hale geliyor. Sunucu, HTTP aralık istekleriyle uzak okuma mekanizmasını birleştirerek, deponun boyutu üzerinde çalıştığı makinenin disk kapasitesini aşsa dahi referansların ve web arayüzünün sorunsuz sunulmasına imkan veriyor.

Proje bünyesinde akıllı HTTP protokolü, Git LFS, paket URI ile klonlama dağıtımı ve React tabanlı bir web kullanıcı arayüzü tek ikili dosyada birleşiyor. Depo klonlama yükü, statik paket dosyaları halinde doğrudan nesne deposu veya içerik dağıtım ağları üzerinden karşılanarak sunucu yükten muaf tutuluyor. Erişim denetimi statik belirteçler ve OpenID Connect protokolü aracılığıyla yürütülüyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.