« Tüm yayınlar

Monocoque: Rust ile Yazılmış Saf ZMTP 3.1 (ZeroMQ) Kütüphanesi

Monocoque, io_uring/tokio/smol destekli, saf Rust'ta yazılmış ZMTP 3.1 uyumlu ZeroMQ mesajlaşma kütüphanesi; benchmark sonuçlarıyla libzmq'yi geride bırakıyor.

Monocoque, ZeroMQ protokolüne (ZMTP 3.1) uyumlu, sıfırdan Rust ile yazılmış bir mesajlaşma kütüphanesi. Varsayılan olarak compio üzerinden io_uring kullanıyor, ancak tokio ve smol backend'leriyle de çalışabiliyor; hangi backend seçilirse seçilsin mevcut libzmq eşleriyle uyumlu kalıyor ve Rust'ın bellek güvenliği modelinin dışına çıkmıyor.

Kütüphane REQ/REP, DEALER/ROUTER, PUB/SUB, PUSH/PULL gibi 11 soket tipinin tamamını, CURVE/PLAIN kimlik doğrulamayı, otomatik yeniden bağlanmayı ve heartbeat mekanizmasını destekliyor. Yazma tamponlarını birleştirme (write coalescing), vektörel yazma (writev) ve tahsissiz alım (allocation-free recv) gibi performans odaklı API'ler sunuyor.

rust-zmq (libzmq'ya FFI bağlantıları) ile yapılan benchmark'larda, coalescing açıldığında üç backend de küçük mesaj boyutlarında libzmq'yi 2-4x geçiyor; REQ/REP gecikmesi ise her backend'de libzmq'den 2.6-3.9x daha düşük. Tek bağlantılı loopback testlerinde epoll tabanlı tokio/smol öne çıkarken, io_uring'in gerçek avantajları çoklu bağlantı ve toplu gönderim senaryolarında ortaya çıkıyor. Rust ekosisteminde native, unsafe içermeyen bir ZeroMQ alternatifi arayan mühendisler için ilgi çekici bir proje.