« Tüm yayınlar

monocoque 0.3.0: io_uring üzerinde saf Rust ZeroMQ (ZMTP 3.1)

monocoque 0.3.0: saf Rust ZeroMQ (ZMTP 3.1), io_uring/compio 0.19 yükseltmesi, SO_REUSEPORT, sıfır tahsisli hot path ve CI'da zorunlu performans/güvenlik testleri.

monocoque, ZMTP 3.1 protokolünü sıfırdan uygulayan, mevcut libzmq eşleriyle konuşabilen saf Rust yazılmış bir ZeroMQ kütüphanesi. Varsayılan olarak compio üzerinden io_uring kullanıyor, tokio ve smol backend'leri de destekleniyor. 0.2.0 sürümüyle I/O çekirdeği yeniden yapılandırıldı: tek mesajlık PUSH/PULL yolu artık heap tahsisi yapmıyor ve bu, sayaçlı allocator, boşta bellek sınırı ve callgrind komut sayısı kontrolleriyle CI'da zorunlu kılınıyor.

0.3.0, compio'yu 0.10'dan 0.19'a yükseltiyor (MSRV 1.95'e çıkıyor) ve #[compio::main] kullanan projelerin net feature'ını etkinleştirmesi gerekiyor. SO_REUSEPORT desteği, çekirdek başına bir accept döngüsü kurulumunu mümkün kılıyor; reconnect backoff artık asenkron ve jitter'lı. Ayrıca yeniden bağlanma sonrası routing id'nin ZMTP READY'de eksik gönderilmesi ve inproc reply kanalının bozuk olması nedeniyle PLAIN auth'un sessizce çalışmaması gibi gerçek doğruluk hataları düzeltildi.

Güvenlik tarafında PLAIN auth artık bilinmeyen kullanıcı adı ile hatalı şifreyi ayırt etmiyor, şifreler kullanımdan sonra sıfırlanıyor; fuzz hedefleri, Miri, loom ve ThreadSanitizer CI'a eklendi. Performans olarak coalescing açıkken üç backend de PUSH/PULL throughput'ta libzmq'yu geçiyor (compio'da küçük boyutlarda ~3x), REQ/REP gecikmesi ~9µs (libzmq ~36µs); ancak eager modda toplu tek yönlü trafikte libzmq'nun dahili batching'i küçük boyutlarda öne çıkıyor.