4 puan yazan GN⁺ 2026-03-21 | 1 yorum | WhatsApp'ta paylaş
  • n0 ekibinin geliştirdiği noq, Rust ile yazılmış genel amaçlı bir QUIC uygulaması olup multipath ve NAT traversal desteği sunuyor
  • Mevcut iroh’un Quinn tabanlı mimari sınırlarını aşmak için bağımsız bir kod tabanına geçilerek geliştirildi
  • QUIC Multipath, NAT Traversal, Address Discovery, QLog genişletmeleri, WeakConnectionHandle gibi çeşitli özellikler içeriyor
  • iroh v0.96 itibarıyla prodüksiyon ortamında kullanılıyor ve picoquic ile birlikte çalışabilirlik testleri de tamamlandı
  • Gelecekte QUIC çalışma grubu ve Quinn ekibiyle iş birliği sürdürülerek, Rust tabanlı ağ uygulamaları geliştiricileri için temel bir teknoloji haline getirilmesi planlanıyor

noq duyurusu

  • noq, n0 ekibinin geliştirdiği genel amaçlı bir QUIC uygulaması olup multipath ve NAT traversal özelliklerini destekliyor
  • iroh v0.96’dan itibaren aktarım katmanı olarak kullanılıyor ve yalnızca iroh ile sınırlı kalmadan genel amaçlarla da değerlendirilebiliyor

Quinn’den noq’a geçiş

  • iroh daha önce QUIC’i Quinn tabanında kullanıyordu; ancak NAT traversal ve yol değiştirme gibi QUIC dışından ele alınması gereken karmaşık işlevler çok fazlaydı
  • Bu yapısal kısıtlar nedeniyle dışarıdan değişiklik yapmak zor olduğundan Quinn’in hard fork’u yapılmasına karar verildi
  • Quinn ile iş birliği sürdürülürken, iroh’un özel gereksinimlerini karşılamak için bağımsız bir kod tabanı üzerinden ilerleme yönüne geçildi

noq’un başlıca özellikleri

  • QUIC Multipath

    • QUIC Multipath spesifikasyonu eksiksiz uygulanarak, iroh’un röle ve doğrudan yolları (IPV4, IPV6) QUIC’in birinci sınıf yol kavramı içinde birleştirildi
    • Her yol için tıkanıklık kontrolü durumu korunuyor ve en uygun yol seçilebiliyor
    • Önceden iroh yolları QUIC’in altında manipüle ediyordu; artık bunu QUIC’in kendisi tanıyor ve yönetiyor
    • iroh dışındaki genel kullanım senaryolarında da kullanılabilecek genel amaçlı bir multipath uygulaması olarak tasarlandı
  • QUIC NAT Traversal

    • QUIC NAT traversal taslağı yorumlanarak uygulandı ve prodüksiyon düzeyinde kararlılığa sahip ilk örnek olarak anılıyor
    • Yüz binlerce iroh cihazında gerçek kullanımda test edildi
    • NAT hole punching doğrudan QUIC katmanında yapıldığından tıkanıklık denetleyicisi ve kayıp algılama daha doğru çalışıyor
  • QUIC Address Discovery

    • iroh v0.32’den beri QUIC Address Discovery(QAD) kullanılıyor
    • STUN yerine QUIC bağlantısı üzerinden istemcinin genel IP adresi öğreniliyor
    • Şifreli paket iletimi sayesinde protokol katılaşması önleniyor ve gizlilik koruması güçleniyor
  • QLog genişletmeleri

    • QLog standart taslağı temel alınarak QUIC bağlantısındaki çeşitli olaylar kaydediliyor
    • Öncekine kıyasla çok daha fazla olay destekleniyor ve multipath ile ilgili olaylar da eklenmiş durumda
    • qvis gibi görselleştirme araçlarıyla uyumlu ve çoklu yol paket akışını gösteren bir görüntüleyici prototipi de sunuluyor
  • WeakConnectionHandle

    • Bağlantıyı elde tutmadan, gerektiğinde Connection nesnesine yükseltilebilen bir tür
    • std::sync::Weak benzeri olsa da Arc kullanmak gerekmiyor
    • bağlantı yöneticisi gibi yapılarda faydalı şekilde kullanılabiliyor

Prodüksiyon kullanımı ve birlikte çalışabilirlik

  • noq, iroh v0.96 itibarıyla prodüksiyon ortamında kullanılıyor
  • Yalnızca kendi multipath uygulamasıyla değil, picoquic ile de birlikte çalışabilirlik testleri tamamlandı

Gelecek planları

  • noq’un uzun vadeli bir temel teknoloji olarak geliştirilmesi planlanıyor
  • NAT traversal iyileştirmeleri ve multipath tabanlı performans optimizasyonu üzerinde çalışılacak
  • QUIC çalışma grubu ve Quinn ekibiyle iş birliği sürdürülecek
  • QUIC uygulamaları, P2P aktarım ve çeşitli ağ ortamlarında çalışan uygulamalar geliştirenlerle iş birliği genişletilecek
  • Rust tabanlı QUIC multipath uygulamasını doğrudan deneyebilmek için dokümantasyon ve örnek kod sunulacak

Iroh’a genel bakış

  • Iroh, “dial-any-device” ağ kütüphanesi olup protokol birleşimleriyle esnek ağ yapılandırmasını destekliyor
  • Yüz binlerce cihazda hâlihazırda çalışıyor ve açık kaynak olarak yayımlanıyor
  • Dokümantasyon, kod ve Discord kanalı üzerinden projeye katılım mümkün

1 yorum

 
GN⁺ 2026-03-21
Hacker News görüşleri
  • Bu başlıkta Iroh ekibinin fork yapmaya karar verme sürecini karşılıklı saygıyla tartışmasını görmek güzeldi

    • Gerçekten harika bir etkileşimdi. Geçmişte bakımcılar fork işini sık sık düşmanca bir hareket ya da “kodumuzu çalıyorlar” gibi algılardı, ama bu kez öyle değildi
      Ayrıca dahili değişiklikleri yeniden upstream'e geri göndermenin ne kadar zor olduğunu da iyi gösteriyor. Kendi değişikliklerini incelemeye açmak için yüzlerce küçük PR'a bölmeye vakitlerinin olmadığını söylediler. Bir şirket açısından bu fazla büyük bir zaman yatırımı
      Yine de ana projeyle ve implementasyon ayrıntılarıyla yakın kalmalarını umuyorum. Yeterince istikrara kavuştuktan sonra küçük parçalar yerine büyük bloklar halinde birleştirme de mümkün olabilir gibi görünüyor
    • Böyle nazik bir konuşma görmek, açık kaynak topluluğundaki alışıldık dramaya kıyasla hoştu
  • iroh, kişisel uygulamaları hızlıca geliştirme çağında iyi konumlanmış bir ürün gibi görünüyor
    Bunu kullanarak bir “app relay” yapmak istiyordum. Kullanıcının ekstra ayar yapmadan kendi ağındaki uygulama ya da verilere uzaktan erişebilmesini sağlayan bir zero-config OSS çözümü tasarlıyorum. Bu, Tailscale gibi ağ relay çözümlerinden farklı

    • Aslında zero-config uygulaması zor. mDNS tabanlı discovery işini farklı ev ağlarında denedim ama router'lar multicast'i sık sık engelliyor ya da kısıtlıyor. Sonunda çeşitli fallback katmanları eklemek ve hangi yolun gerçekten çalıştığını anlamak için heuristikler yazmak zorunda kaldım. QUIC'te multipath varsayılan olarak yerleşik olsaydı çok daha kolay olurdu
    • Bu konular ilginizi çekiyorsa awesome-tunneling listesine bakabilirsiniz. Özellikle OpenZiti, tüneli uygulamanın içine gömen benzer bir yaklaşım izliyor
  • n0 ekibini gerçekten seviyorum. P2P dosya aktarımı için onların sendme CLI aracını sık kullanıyorum

    • Ben de aynı şekilde. Araç setleri hızlı, kararlı ve keyifli bir geliştirme deneyimi sunuyor. Gerçekten oyunun kurallarını değiştiren bir şey gibi
    • Güzel bilgi, teşekkürler. Ben genelde magic wormhole kullanıyorum ama Python modülü çok fazla olduğu için sunucuya kurmak zahmetli geliyordu. Bu yüzden Windows SQL sunucusunda toothpyk gibi daha basit bir alternatif kullanıyor ya da wget ile hallediyordum. sendme'yi kesin denemem lazım
  • noq/iroh'nin QUIC paketlerini relay etme biçimini merak ediyordum. QUIC'i takip etmek zor olduğu için, relay'in hangi paketi nereye göndereceğini nasıl bildiğini ya da QUIC'i başka bir protokolün içine sarıp sarmalamadığını merak ettim

    • noq'un kendisi relay mantığını implemente etmiyor. iroh relay'i sadece başka bir IP alt ağı gibi davranıyor
      Pratikte QUIC datagram'larını WebSocket içine sararak iletiyor. Header'da hedef EndpointId (ed25519 açık anahtarı) yer alıyor ve handshake üzerinden gönderen EndpointId de doğrulanıyor
      Yani aslında QUIC datagram'larını HTTPS over TCP üzerinden tünelliyor. Çifte şifreleme söz konusu ama UDP'nin engellendiği ortamlarda da çalışıyor ve normal trafik gibi görünmesi için tasarlanmış
  • iroh ekibi hâlâ yüksek hızda ilerliyor
    Hafta sonunda zaman ayırıp iroh ile Nebula benzeri bir overlay ağ kurmayı planlıyorum

    • Discord'larında bahsedilen ilgili projeler olarak iroh-lan ve iron'a bakabilirsiniz
  • QUIC gibi yaklaşımlar hâlâ bağlantı sürekliliğini taşıma durumuna sıkı sıkıya bağlı tutan bir yapı
    Oturum kimliğini taşıma katmanından tamamen ayırıp, taşıma başarısızlığını sadece kurtarılabilir bir olay haline getirmenin mümkün olup olmadığını düşünüyorum. QUIC'in ötesine geçen pratik bir sistem görmüş olan var mı merak ediyorum

  • noq kod parçasına bakıyorum

  • Yakın zamanda duyurulan iroh'nin özel taşıma özelliği ile ilgili haber de ilginç
    Ayrıntılar için iroh 0.97.0 blog yazısına bakabilirsiniz

  • Acaba nQUIC'e baktınız mı? Noise'u Noq ile entegre etmek ilginç olabilir

    • Aslında bununla ilgili bir deney vardı → nquinn projesi
      noq (ve onun temelindeki Quinn), kendi “Session” trait'ini implemente etmenize izin veriyor; böylece TLS ya da nQUIC arasında istediğinizi seçebiliyorsunuz
  • tsoding'in Noq'u ile karıştırmamak lazım. Onun adı “Not Coq”tan geliyor