« Tüm yayınlar

Libxml-rs: libxml2 ve libxslt'in adli düzeyde native Rust yeniden uygulaması

Libxml-rs, libxml2 ve libxslt'i byte-hassas ABI ve davranış paritesiyle yeniden üreten, C ABI uyumlu native Rust projesidir.

Libxml-rs, libxml2 ve libxslt kütüphanelerinin gözlemlenebilir davranışını C ABI uyumlu native Rust koduyla yeniden üreten bir "custodial" projedir; klasik bir sarmalayıcı (wrapper) değil, tarihsel bir adli arşiv olarak konumlanıyor. Proje 12 tarihsel libxml2 sürümü (2.7.8-2.15.0) ile 5 libxslt sürümü üzerinde 28 vakalık davranışsal test setini çalıştırarak byte-hassasiyetinde farkları upstream commit'lerine kadar izliyor.

Phase 11'deki tarihsel matris, xmllint çıktısına eklenen newline'lar, ayrıştırıcı hata kodlarındaki değişimler ve HTML dump davranışı gibi bulguları belirli commit'lerle eşleştiriyor; libxslt çekirdek dönüştürme çıktısının 2009'dan bu yana byte-özdeş kaldığını da doğruluyor.

Phase 11.1'de eklenen ABI imza denetimi, binlerce dışa açık fonksiyonu karşılaştırarak allocator kancalarındaki eksiklikler, işaret (signedness) hataları, yanlış argüman sayıları, yanlış dönüş tipleri ve var olmayan bir API gibi düzinelerce gerçek ABI sapmasını ortaya çıkardı; ayrıca varsayılan bellek ayırıcıdaki tanımsız davranış giderildi.

Phase 12 ise üretilen ELF ikili dosyalarının ve versiyon script'lerinin gerçek tüketici uygulamalar tarafından upstream'den ayırt edilemediğini kanıtlıyor — bu da C/C++ ekosistemine drop-in bir native Rust XML/XSLT motoru anlamına geliyor.

Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz