4 पॉइंट द्वारा GN⁺ 2026-03-21 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • n0 टीम द्वारा विकसित noq एक Rust में लिखा गया general-purpose QUIC implementation है, जो multipath और NAT traversal को सपोर्ट करता है
  • मौजूदा iroh की Quinn-आधारित आर्किटेक्चर सीमाओं को हल करने के लिए इसे independent codebase के रूप में विकसित किया गया
  • इसमें QUIC Multipath, NAT Traversal, Address Discovery, QLog extensions, WeakConnectionHandle जैसी कई सुविधाएँ शामिल हैं
  • यह iroh v0.96 से production environment में उपयोग हो रहा है, और picoquic के साथ interoperability testing भी पूरी हो चुकी है
  • आगे चलकर QUIC Working Group और Quinn टीम के साथ सहयोग जारी रखते हुए, इसे Rust-आधारित network application developers के लिए आधारभूत तकनीक के रूप में विकसित किया जाएगा

noq की घोषणा

  • noq n0 टीम द्वारा विकसित एक general-purpose QUIC implementation है, जो multipath और NAT traversal फीचर्स को सपोर्ट करता है
  • इसे iroh v0.96 से transport layer के रूप में इस्तेमाल किया जा रहा है, और यह केवल iroh तक सीमित नहीं है बल्कि सामान्य उपयोग के लिए भी उपयुक्त है

Quinn से noq की ओर बदलाव

  • iroh पहले Quinn पर आधारित QUIC का उपयोग करता था, लेकिन NAT traversal और path switching जैसी कई जटिल सुविधाएँ थीं जिन्हें QUIC के बाहर संभालना पड़ता था
  • इन संरचनात्मक सीमाओं के कारण बाहरी संशोधन कठिन थे, इसलिए Quinn का hard fork करने का निर्णय लिया गया
  • Quinn के साथ सहयोग जारी रखते हुए, iroh की विशेष आवश्यकताओं को पूरा करने के लिए independent codebase के माध्यम से आगे बढ़ा गया

noq की प्रमुख विशेषताएँ

  • QUIC Multipath

    • QUIC Multipath specification का पूर्ण implementation, जिससे iroh के relay और direct paths (IPV4, IPV6) को QUIC के first-class path concept में एकीकृत किया गया
    • हर path के लिए अलग congestion control state बनाए रखते हुए सर्वोत्तम path चुना जा सकता है
    • पहले iroh, QUIC के नीचे path manipulation करता था, लेकिन अब QUIC स्वयं इसे पहचानता और प्रबंधित करता है
    • इसे iroh के बाहर भी इस्तेमाल किया जा सके, इस उद्देश्य से general-purpose multipath implementation के रूप में डिज़ाइन किया गया है
  • QUIC NAT Traversal

    • QUIC NAT traversal draft की अपनी व्याख्या के आधार पर implementation किया गया है, और इसे production-grade stability वाले पहले उदाहरण के रूप में बताया गया है
    • यह सैकड़ों हज़ार iroh डिवाइसों पर वास्तविक परिस्थितियों में टेस्ट किया जा चुका है
    • QUIC layer में सीधे NAT hole punching करने से congestion controller और loss detection अधिक सटीक तरीके से काम करते हैं
  • QUIC Address Discovery

    • iroh v0.32 से QUIC Address Discovery(QAD) का उपयोग किया जा रहा है
    • STUN की जगह QUIC connection के माध्यम से client का public IP address सीखा जाता है
    • encrypted packet transmission के जरिए protocol ossification को रोका जाता है और privacy protection बेहतर होती है
  • QLog extensions

    • QLog standard draft के आधार पर QUIC connections की विभिन्न events को रिकॉर्ड किया जाता है
    • पहले की तुलना में बहुत अधिक events सपोर्ट किए जाते हैं, और multipath-related events भी जोड़े गए हैं
    • यह qvis जैसे visualization tools के साथ compatible है, और multi-path packet flow दिखाने वाला viewer prototype भी उपलब्ध है
  • WeakConnectionHandle

    • ऐसा type जो connection को बनाए रखे बिना ज़रूरत पड़ने पर Connection object में promote किया जा सकता है
    • यह std::sync::Weak जैसा है, लेकिन Arc का उपयोग किए बिना भी काम करता है
    • connection manager जैसी स्थितियों में इसका उपयोग काफ़ी उपयोगी हो सकता है

production में उपयोग और interoperability

  • noq का उपयोग iroh v0.96 से production environment में किया जा रहा है
  • इसकी अपनी multipath implementation के अलावा picoquic के साथ interoperability testing भी पूरी हो चुकी है

आगे की योजना

  • noq को long-term foundational technology के रूप में विकसित किया जाएगा
  • NAT traversal में सुधार और multipath-आधारित performance optimization पर काम किया जाएगा
  • QUIC Working Group और Quinn टीम के साथ सहयोग जारी रहेगा
  • QUIC implementation, P2P transport, और विविध network environments में काम करने वाले application developers के साथ सहयोग का विस्तार किया जाएगा
  • Rust-आधारित QUIC multipath implementation को सीधे आज़माने के लिए documentation और example code उपलब्ध कराया जाएगा

Iroh का परिचय

  • Iroh एक “dial-any-device” networking library है, जो protocol combination के माध्यम से flexible network configuration को सपोर्ट करती है
  • यह पहले से ही सैकड़ों हज़ार डिवाइसों पर चल रही है और open source के रूप में उपलब्ध है
  • documentation, code, और Discord channel के माध्यम से प्रोजेक्ट में भाग लिया जा सकता है

1 टिप्पणियां

 
GN⁺ 2026-03-21
Hacker News टिप्पणियाँ
  • इस थ्रेड में Iroh टीम ने fork का फ़ैसला करने की प्रक्रिया पर जिस तरह आपसी सम्मान के साथ चर्चा की, वह देखना अच्छा लगा

    • यह वाकई शानदार interaction था। पहले अक्सर maintainers fork को शत्रुतापूर्ण कदम या “हमारा कोड चुरा रहे हैं” जैसी चीज़ मान लेते थे, लेकिन इस बार ऐसा नहीं था
      इससे यह भी साफ़ दिखता है कि internal बदलावों को फिर से upstream में भेजना कितना मुश्किल होता है। उन्होंने कहा कि उनके पास अपने बदलावों को सैकड़ों छोटे PRs में तोड़कर review करवाने का समय नहीं है। किसी कंपनी के नज़रिए से यह बहुत बड़ा time investment है
      फिर भी उम्मीद है कि वे मूल project और implementation details को काफ़ी क़रीब रखेंगे। जब चीज़ें पर्याप्त स्थिर हो जाएँगी, तब छोटे-छोटे हिस्सों की बजाय बड़े chunks में merge करना भी संभव लग सकता है
    • इस तरह की विनम्र बातचीत open source community में अक्सर दिखने वाले drama के मुक़ाबले काफ़ी अच्छी लगी
  • iroh ऐसे दौर में अच्छी तरह positioned product लगता है, जहाँ personal applications जल्दी बनाए जा रहे हैं
    मैं इसका इस्तेमाल करके एक “app relay” बनाना चाहता था। मैं ऐसी zero-config OSS solution की सोच रहा हूँ जिससे users बिना अलग setup के अपने network के अंदर मौजूद apps या data को remotely access कर सकें। यह Tailscale जैसे network relays से अलग है

    • असल में zero-config को implement करना काफ़ी मुश्किल होता है। मैंने mDNS-आधारित discovery को अलग-अलग home networks में implement किया है, लेकिन routers अक्सर multicast को block या restrict कर देते हैं। आख़िर में कई fallback layers बनानी पड़ती हैं, और यह पता लगाने के लिए heuristics लिखनी पड़ती हैं कि वास्तव में कौन-सा path काम कर रहा है। अगर QUIC में multipath शुरू से built-in होता, तो यह बहुत आसान होता
    • अगर इस विषय में रुचि है, तो awesome-tunneling list देखना अच्छा रहेगा। ख़ासकर OpenZiti app के अंदर tunnel embed करने जैसा मिलता-जुलता approach अपना रहा है
  • n0 टीम मुझे बहुत पसंद है। मैं उनके sendme CLI का अक्सर इस्तेमाल P2P file transfer के लिए करता हूँ

    • मैं भी। उनका toolkit तेज़, स्थिर और आनंददायक development experience देता है। सच में game changer जैसा लगता है
    • अच्छी जानकारी के लिए धन्यवाद। मैं आमतौर पर magic wormhole इस्तेमाल करता हूँ, लेकिन उसके बहुत ज़्यादा Python modules होने की वजह से उसे server पर install करना बोझिल लगता था। इसलिए Windows SQL server पर मैं toothpyk जैसा simple alternative इस्तेमाल करता था, या फिर wget से काम चला लेता था। sendme ज़रूर आज़माना पड़ेगा
  • मुझे जिज्ञासा थी कि noq/iroh QUIC packets को relay कैसे करता है। QUIC को track करना मुश्किल होता है, तो relay को यह कैसे पता चलता है कि कौन-सा packet कहाँ भेजना है, या फिर क्या वे QUIC को किसी दूसरे protocol में wrap करते हैं

    • noq ख़ुद relay logic implement नहीं करता। iroh relay बस एक और IP subnet की तरह काम करता है
      व्यवहार में QUIC datagrams को WebSocket में wrap करके भेजा जाता है। header में target EndpointId (ed25519 public key) शामिल होता है, और handshake के ज़रिए sender EndpointId भी authenticate हो जाता है
      यानी यह मूलतः QUIC datagrams को HTTPS over TCP के ऊपर tunnel करता है। यह double encryption है, लेकिन इसे ऐसे डिज़ाइन किया गया है कि UDP blocked environments में भी काम करे और सामान्य traffic जैसा दिखे
  • iroh टीम अब भी तेज़ रफ़्तार से आगे बढ़ रही है
    मैं वीकेंड में समय निकालकर iroh से Nebula जैसी overlay network बनाने की योजना कर रहा हूँ

    • उनके Discord में ज़िक्र हुए संबंधित projects के तौर पर iroh-lan और iron देखे जा सकते हैं
  • QUIC जैसा approach अब भी connection persistence को transport state से मज़बूती से बाँधकर रखने वाली संरचना है
    मैं सोच रहा हूँ कि क्या session identity को transport layer से पूरी तरह अलग किया जा सकता है, ताकि transport failure सिर्फ़ recoverable event बनकर रह जाए। क्या किसी ने QUIC से आगे बढ़ा हुआ कोई practical system देखा है

  • मैंने noq code snippet देखा

  • हाल ही में घोषित iroh की custom transport feature से जुड़ी ख़बर भी दिलचस्प है
    इसे iroh 0.97.0 blog post में विस्तार से देखा जा सकता है

  • क्या आपने nQUIC देखा है? Noise को Noq में integrate करना दिलचस्प हो सकता है

    • इस पर वास्तव में प्रयोग हुआ था → nquinn project
      noq (और उसका आधार Quinn) अपना “Session” trait implement करने देता है, इसलिए TLS या nQUIC में से जो चाहें चुना जा सकता है
  • tsoding का Noq इससे भ्रमित नहीं होना चाहिए। उसका नाम “Not Coq” से आया है