2 पॉइंट द्वारा GN⁺ 2024-07-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Jiff, Rust के लिए एक date और time लाइब्रेरी है, जिसे इस तरह डिज़ाइन किया गया है कि उपयोगकर्ता आसानी से सही परिणाम प्राप्त कर सकें
  • यह high-level date और time primitives प्रदान करती है, जिससे इसका गलत उपयोग करना कठिन होता है और performance अच्छी रहती है
  • Time Zone Database के साथ automatic integration, DST-aware arithmetic और rounding, formatting और parsing सुविधाएँ प्रदान करती है
  • Serde support सहित कई फीचर शामिल हैं
  • JavaScript के Temporal से काफी प्रेरित है
  • MIT या UNLICENSE dual license

आगे की योजना

  • Jiff API को बेहतर बनाने और लगभग 1 साल तक नियमित रूप से बदलाव रिलीज़ करने की योजना है
  • 1 साल बाद जब API स्थिर हो जाएगा, तब Jiff 1.0 रिलीज़ किया जाएगा और लंबे समय तक API को बनाए रखने की योजना है
  • इसका उद्देश्य है कि दूसरे लोग Jiff पर भरोसा कर सकें और उसका उपयोग कर सकें

प्रदर्शन

  • Jiff का सबसे महत्वपूर्ण design goal यह है कि उपयोगकर्ताओं के लिए गलत काम करना कठिन बनाया जाए
  • दूसरा लक्ष्य performance है
  • performance उचित है, लेकिन सुधार की गुंजाइश है
  • benchmark bench directory में देखा जा सकता है

प्लेटफ़ॉर्म समर्थन

  • time zone support से जुड़े platform support मुद्दे हैं
  • IANA time zone identifiers के लिए time zone transitions को कैसे तय किया जाए
  • मौजूदा system का default time zone कैसे निर्धारित किया जाए
  • Unix systems में /usr/share/zoneinfo से time zone transition data प्राप्त किया जाता है
  • Windows में compiled library में time zone database शामिल है
  • system time zone lookup के लिए Unix में /etc/localtime, और Windows में GetDynamicTimeZoneInformation का उपयोग होता है

dependencies

  • Jiff की Unix पर कोई dependency नहीं है
  • नई dependencies जोड़ने को लेकर यह बहुत conservative है
  • dependency केवल तभी जोड़ी जाती है जब platform के साथ interaction या interoperability के लिए उसकी आवश्यकता हो

GN⁺ का सार

  • Jiff, Rust के लिए एक high-level date और time लाइब्रेरी है, जिसे इस तरह डिज़ाइन किया गया है कि उपयोगकर्ता इसका गलत उपयोग आसानी से न कर सकें
  • यह Time Zone Database integration, DST-aware arithmetic और formatting जैसी कई सुविधाएँ प्रदान करती है
  • यह JavaScript के Temporal से प्रेरित होकर डिज़ाइन की गई है
  • आने वाले 1 साल में API को बेहतर बनाकर स्थिर 1.0 version रिलीज़ करने की योजना है
  • performance उचित है, लेकिन सुधार की गुंजाइश है, और platform support Unix तथा Windows पर अच्छी तरह काम करता है

1 टिप्पणियां

 
GN⁺ 2024-07-23
Hacker News राय
  • ToSpan syntax कुछ अटपटा लगती है

    • let span = 5.days().hours(8).minutes(1); syntax में पहला नंबर आगे आता है और बाकी function arguments के रूप में आते हैं, जो अजीब लगता है
    • इसे let span = Span::new().days(5).hours(8).minutes(1); की तरह लिखा जा सकता है, लेकिन इसमें कुछ extra characters लगते हैं
  • कुछ लोग datetime library की complexity को कम करके आंकते दिखते हैं

    • सुझाव मिलते हैं कि internal representation के लिए UTC/Unix time इस्तेमाल करो, या duration को nanoseconds में दिखाओ, या timezone की जगह offset इस्तेमाल करो
    • Jiff का design document पढ़ने की सिफारिश की जाती है
    • chrono के साथ तुलना भी उपयोगी है
  • DST arithmetic, round की जा सकने वाली durations, timezone-aware calendar arithmetic, और timezone conflict detection जैसी चीजें library को सही और इस्तेमाल में आसान बनाती हैं

    • chrono बहुत comprehensive और accurate library है, लेकिन इसका इस्तेमाल करना मुश्किल है और यह rigid है
  • मजाक में कहा गया कि एक नई burntsushi library आ गई है

    • यह जानने की जिज्ञासा है कि rustaceans crates में tracing का इस्तेमाल क्यों नहीं करते
    • log ठीक है, लेकिन tz job calls को trace करना कोई सामान्य use case नहीं है
  • नई library बढ़िया लग रही है

    • जिज्ञासा है कि burntsushi नई library क्यों बनाते हैं
    • क्या इसकी वजह मौजूदा libraries की performance problems या API की असुविधा है, या फिर यह सिर्फ मजे के लिए है
  • Rust में calendar libraries की स्थिति आदर्श नहीं है

    • Pandas में timezone conversion बहुत आसान है, लेकिन Chrono में यह जटिल है
    • Jiff सही दिशा में बढ़ रहा है, लेकिन इसकी syntax कभी-कभी अजीब लगती है
  • मौजूदा time libraries की मुख्य समस्या leap second support की कमी है

    • क्योंकि वे UNIX timestamp की जगह TAI का इस्तेमाल नहीं करतीं
    • Jiff भी इस समस्या को हल नहीं करता
    • लगता है leap seconds को 29 फ़रवरी या timezone की तरह treat किया जाना चाहिए
  • BurntSushi Rust regular expression ecosystem के लेखक हैं

  • Jiff के उच्चारण पर बहस

    • एक राय है कि इसे "gif" की तरह soft "g" के साथ बोलना चाहिए
    • दूसरी राय है कि इसे "Giff" की तरह hard "G" के साथ बोलना चाहिए