3 पॉइंट द्वारा GN⁺ 2024-01-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें

शुरुआत

  • अप्रैल 2023 में, Rust सीखने का निर्णय लिया गया।
  • distributed systems और messaging के अनुभव के आधार पर message streaming platform विकसित करने का फैसला किया गया।
  • messaging systems के आंतरिक कामकाज और डेवलपर्स के trade-offs को समझना इसका उद्देश्य था।
  • Iggy.rs की शुरुआत हुई, जिसका लक्ष्य speed और lightweight message streaming platform बनाना था।

प्रोजेक्ट

  • शुरुआती Iggy ने QUIC protocol का उपयोग करके basic message exchange फीचर उपलब्ध कराया।
  • लगातार prototyping और सुधार के जरिए parallel write/read और independent streams को support करने वाला server लागू किया गया।
  • TCP और HTTP protocol support जोड़ा गया और data synchronization mechanism को optimize करके performance बेहतर की गई।
  • benchmarking के माध्यम से high throughput और low latency की पुष्टि हुई, जिसके बाद इसे long-term project में बदल दिया गया।

टीम

  • Iggy में लगभग 10 सदस्यों की टीम है, जो अलग-अलग हिस्सों में योगदान देती है।
  • core server, SDK, web UI, CLI जैसे विभिन्न प्रोजेक्ट्स में भागीदारी की जा रही है।
  • programming के प्रति जुनून साझा करने वाले, अलग-अलग अनुभव स्तर के डेवलपर्स स्वेच्छा से इसमें शामिल हुए।
  • दुनिया भर से आए external contributors की भागीदारी ने प्रोजेक्ट के प्रति भरोसा और बढ़ाया।

फीचर्स

  • high-performance, टिकाऊ log-based message streaming server।
  • high throughput, low latency, और Rust compiled language के कारण predictable resource usage।
  • multiple streams, topics, partitions support और विभिन्न transport protocols का समर्थन।
  • RESTful API, कई भाषाओं के client SDK, और binary data के साथ सीधे काम करने की सुविधा।
  • configurable server features, consumer offset का server-side storage, और message polling के कई तरीकों का समर्थन।
  • message ordering और horizontal scaling के लिए consumer groups, साथ ही message expiration और deduplication फीचर्स।
  • सभी transport protocols के लिए TLS support, optional data encryption, और message headers का समर्थन।
  • streaming server management के लिए built-in CLI और benchmarking app, तथा single binary deployment।

रोडमैप

  • GitHub Trending page पर आने के बाद users के साथ feature additions पर चर्चा हुई।
  • clustering, low-level I/O, और per-core thread architecture के जरिए performance और reliability बढ़ाने का लक्ष्य है।
  • Raft consensus mechanism पर प्रयोग, io_uring के जरिए I/O operations को बेहतर करना, और monoio runtime के उपयोग की योजना है।

भविष्य

  • general-purpose message streaming platform बनाना और OS तथा hardware limits को चुनौती देना लक्ष्य है।
  • आसान उपयोग वाली integrated platform के रूप में विभिन्न programming languages, CLI, और web UI को support करने की योजना है।
  • community के feedback और ideas के माध्यम से आगे बढ़ने का लक्ष्य है।

GN⁺ की राय

  • Iggy.rs, Rust-आधारित message streaming platform है, जिसका लक्ष्य high performance और low latency है।
  • open source project के रूप में यह दुनिया भर के डेवलपर्स की स्वैच्छिक भागीदारी और योगदान से लगातार बढ़ रहा है।
  • clustering, low-level I/O optimization, और per-core thread architecture जैसी innovative technologies के जरिए distributed systems की performance limits को पार करने की इसकी महत्वाकांक्षी कोशिश दिलचस्प है, और इस क्षेत्र में रुचि रखने वालों के लिए यह बहुत उपयोगी प्रोजेक्ट है।

1 टिप्पणियां

 
GN⁺ 2024-01-06
Hacker News राय
  • सॉफ़्टवेयर क्षेत्र में पहली बार रुचि पैसे की वजह से नहीं, बल्कि उन लोगों के आदर्शों की वजह से जगी जो एक साझा लक्ष्य की ओर काम कर रहे थे। प्रोजेक्ट के लिए शुभकामनाएँ, और उम्मीद है कि विकल्पों के साथ तुलना के ज़रिए प्रोजेक्ट की स्थिति को बेहतर समझा जा सकेगा।
  • ब्लॉग पोस्ट पसंद आई, और लेखक विनम्र, ईमानदार तथा रचनात्मक प्रोजेक्ट लीडर लगते हैं। प्रोजेक्ट के लिए शुभकामनाएँ।
  • यह JetStream का सीधा प्रतिस्पर्धी लगता है, और एक साल से कम काम में प्रभावशाली प्रगति दिखाता है।
  • यह पोस्ट Fluvio की उत्पत्ति पर फिर से सोचने पर मजबूर करती है; कई दशकों से अलग-अलग क्षेत्रों में data-centric applications के साथ लंबे संबंध रखने वाली एक छोटी टीम Rust और WebAssembly का उपयोग करके data streaming को लेकर उत्साहित है।
  • Kafka और Fluvio (Rust में लिखा गया एक और Kafka प्रतिस्पर्धी) के साथ तुलना पूरी तरह स्पष्ट नहीं है, हालांकि यह RabbitMQ जैसी message queue भी हो सकती है।
  • कुछ साल पहले एक दोस्त के साथ Go में ऐसा ही कुछ बनाया था।
  • Rust सीखने के बाद इसे आज़माना चाहूँगा, और साइट की aesthetics पसंद आई।
  • प्रोजेक्ट दिलचस्प है, लेकिन इसे आज़माने से पहले यह समझना ज़रूरी है कि कई server instances कैसे चलाए जाएँगे और servers के बीच file system interaction कैसे काम करेगा।
  • KeyDB की streaming की तुलना में इसका फ़ायदा शायद अधिक मज़बूत persistence हो सकता है।
  • monoio के चयन पर हैरानी हुई। इसके लिए nightly compiler चाहिए, और मुझे नहीं लगता कि यह project maintenance के लिए अच्छा विकल्प है।