- Veri ayrıştırma ile serileştirme arasındaki sınırı ortadan kaldırmak için geliştirilen sıfır kopya ikili serileştirme formatı
- Veriyi tek ve kesintisiz bir tampon içinde B-ağacı yapısıyla kodlayarak, rastgele alan erişimi ve değişikliği
O(log n) sürede mümkün kılar
- Bellek formatı doğrudan aktarım formatı olarak çalıştığı için, ek ayrıştırma veya yeniden serileştirme olmadan anında gönderilip alınabilir
- Alındığı anda anahtar arama, değer değiştirme ve tekrar gönderme işlemlerinin tamamı yalnızca bellek kopyalama (
memcpy) ile gerçekleştirilir
- Şemasız (self-describing) yapısıyla, IDL ya da şema tanımı olmadan kullanılabilir
- JSON ile karşılıklı dönüşüm desteği sunarak mevcut API ve veri kümeleriyle uyumluluk sağlar
- Hata ayıklama ve mesaj inceleme sırasında JSON biçiminde çıktı verebilir
- Performans odaklı tasarım
- Önbellek dostu B-ağacı yapısı ve 9.3 kB'lık minimal C uygulaması ile oluşturulmuştur
- SIMD kullanan en hızlı JSON kütüphanelerine kıyasla 120 kata kadar, Google Flatbuffers'a kıyasla ise 242 kata kadar daha hızlı performans sunar
- Dünyadaki en hızlı şemasız veri formatlarından biridir
- Teknik özellikler
- Sıfır kopya okuma/yazma desteği, tüm I/O işlemlerinde
O(log n) karmaşıklık
- Yerleşik pointer doğrulama ve çalışma zamanı tip güvenliği
malloc() kullanmaz, tampon doğrudan çağıran tarafından sağlanır
- Öngörülebilir gecikme süresi ve düşük bellek kullanımı
- C11 (GNU C sözdizimi) tabanlıdır, harici bağımlılığı yoktur
- İsteğe bağlı olarak JSON dönüşümü için yyjson alt bağımlılığı kullanılabilir
- API yapısı
- Buffer API: kullanıcı tarafından sağlanan tampon temelli, bellek denetimini en üst düzeye çıkarır
- Context API: bellek yönetimini soyutlayarak daha basit bir arayüz sunar
- Karşılaştırma ve benchmark sonuçları
- JSON, BSON, MessagePack gibi metin formatlarına karşı ezici işlem hızı
- Cap’n Proto, Flatbuffers gibi ikili formatlardan daha yüksek esneklik ve değiştirilebilirlik sunar
- Gerçek Twitter API verileri, Kostya JSON, C++ serileştirme benchmark'ları gibi testlerde üst düzey performans kaydetmiştir
- Güvenlik tasarımı
- Taşma korumalı sınır kontrolleri, nesil tabanlı pointer makroları, özyineleme sınırı ve çalışma zamanı tip doğrulaması içerir
- Güvenilmeyen girdi verilerini işlemek için uygun bir yapı sunar
- Kullanım bağlamı
- Yüksek performanslı ağ mesajlaşması, gerçek zamanlı veri işleme, gömülü ortamlar gibi alanlarda CPU verimliliğini en üst düzeye çıkarır
- C arayüzü tabanlı sistemlerde doğrudan uygulanabilir
- Lisans ve genişletilebilirlik
- MIT lisansı ile yayımlanan, bağımsız bir C uygulamasıdır
- Gelecekte dil bağları, sıkıştırma benchmark'ları, resmi spesifikasyon yazımı gibi ek yol haritaları bulunuyor
- Köken ve arka plan
- 2024'te yayımlanan Lite² makalesinde önerilen kavramı temel alan, bağımsız olarak yeniden uygulanmış bir proje
- Lite³ adı, Lite²'den daha hafif olduğu anlamını taşır
Henüz yorum yok.