ULID Generator

टाइमस्टैम्प और रैंडमनेस के साथ लेक्सिकोग्राफिकली सॉर्टेबल आइडेंटिफायर्स जनरेट करें

इन उदाहरणों को आज़माएं:

ULID क्या है?

ULID (Universally Unique Lexicographically Sortable Identifier) एक 128-बिट आइडेंटिफायर फॉर्मेट है जिसे UUID की सीमाओं को दूर करने के लिए डिज़ाइन किया गया है। यह निम्नलिखित से बना है:

  • Timestamp: 48 बिट्स मिलीसेकंड प्रिसिजन Unix टाइम
  • Randomness: 80 बिट्स क्रिप्टोग्राफिकली-सिक्योर रैंडम डेटा
  • Encoding: Base32 प्रतिनिधित्व (26 कैरेक्टर्स)

फॉर्मेट उदाहरण: 01ARZ3NDEKTSV4RRFFQ69G5FAV

ULID कैसे काम करता है

  1. टाइमस्टैम्प के लिए 48 बिट्स जनरेट करें (Unix टाइम मिलीसेकंड में)
  2. 80 बिट्स क्रिप्टोग्राफिकली-सिक्योर रैंडम डेटा जनरेट करें
  3. टाइमस्टैम्प (सबसे महत्वपूर्ण) को रैंडमनेस (कम से कम महत्वपूर्ण) के साथ मिलाएं
  4. पूरे 128-बिट वैल्यू को Crockford के Base32 वर्णमाला का उपयोग करके एन्कोड करें
  5. परिणाम एक 26-कैरेक्टर स्ट्रिंग है (पहले 10 कैरेक्टर्स टाइमस्टैम्प हैं, अंतिम 16 रैंडमनेस हैं)

फायदे और विचार

AdvantagesConsiderations
  • लेक्सिकोग्राफिकली सॉर्टेबल
  • URL-सुरक्षित कैरेक्टर सेट
  • कोई विशेष एन्कोडिंग आवश्यक नहीं
  • Case-insensitive
  • कोई प्राइवेसी चिंता नहीं
  • नया, कम व्यापक रूप से उपयोग किया जाता है
  • सीमित लाइब्रेरी सपोर्ट
  • कोई UUID संगतता नहीं
  • 1970 से पहले वापस नहीं जा सकता

ULID संरचना

ComponentBitsCharactersDescription
Timestamp48 बिट्स10 कैरेक्टर्सUnix टाइमस्टैम्प (ms) Base32 में एन्कोड किया गया
Randomness80 बिट्स16 कैरेक्टर्सरैंडम बाइट्स Base32 में एन्कोड किए गए

ULID बनाम UUID तुलना

FeatureULIDUUID v1UUID v4UUID v7
Size128 बिट्स128 बिट्स128 बिट्स128 बिट्स
स्ट्रिंग लंबाई26 कैरेक्टर्स36 कैरेक्टर्स36 कैरेक्टर्स36 कैरेक्टर्स
Time-based
प्राकृतिक सॉर्टिंग
URL सुरक्षित
MAC एड्रेस एक्सपोजर
रैंडम कंपोनेंट
कैनोनिकल स्टैंडर्ड⚠️ ड्राफ्ट

सामान्य उपयोग के मामले

  • डेटाबेस प्राइमरी कीज़: प्रदर्शन-अनुकूलित इंडेक्स
  • वितरित सिस्टम: समन्वय-मुक्त जनरेशन
  • APIs: साफ, URL-सुरक्षित आइडेंटिफायर्स
  • टाइम-सीरीज डेटा: नेटिव कालानुक्रमिक क्रम
  • लॉग सिस्टम: सॉर्टेबल इवेंट आइडेंटिफायर्स
  • आधुनिक एप्लिकेशन: जहां UUID सीमाएं समस्या पैदा करती हैं

क्यों ULID चुनें?

  • Sortability: निर्माण समय के अनुसार लेक्सिकोग्राफिकली सॉर्ट करता है
  • URL सुरक्षा: कोई URL एन्कोडिंग आवश्यक नहीं (UUIDs के हाइफ़न के विपरीत)
  • Compactness: 26 कैरेक्टर्स बनाम UUID के 36
  • केस असंवेदनशीलता: उपयोगकर्ता इनपुट त्रुटियों को कम करता है
  • Monotonicity: एक ही मिलीसेकंड के भीतर वैकल्पिक मोनोटोनिक सॉर्टिंग
  • कोई विशेष कैरेक्टर्स नहीं: सरल, केवल अल्फ़ान्यूमेरिक फॉर्मेट

अक्सर पूछे जाने वाले प्रश्न

ULID की तुलना UUID v7 से कैसे होती है?

दोनों सॉर्टेबिलिटी के लिए Unix timestamps का उपयोग करते हैं और इनमें रैंडम कंपोनेंट्स होते हैं। मुख्य अंतर एन्कोडिंग (Base32 बनाम hex), फॉर्मेट (26 कैरेक्टर्स बनाम 36), और स्टैंडर्डाइजेशन (UUID v7 ड्राफ्ट RFC स्पेसिफिकेशन में है) हैं।

क्या मैं ULID से निर्माण समय निकाल सकता हूँ?

हाँ। पहले 10 कैरेक्टर्स एक मिलीसेकंड-प्रिसिजन Unix टाइमस्टैम्प का प्रतिनिधित्व करते हैं जिसे डिकोड करके मानक datetime में बदला जा सकता है।

क्या ULIDs UUID डेटाबेस फ़ील्ड के साथ संगत हैं?

नहीं। ULIDs एक अलग फॉर्मेट का उपयोग करते हैं और इन्हें स्ट्रिंग्स या बाइनरी डेटा के रूप में स्टोर करना होगा, न कि नेटिव UUID डेटाबेस प्रकारों में।

ULIDs में मोनोटोनिसिटी क्या है?

कुछ ULID इम्प्लीमेंटेशन एक मोनोटोनिक विकल्प प्रदान करते हैं जो एक ही मिलीसेकंड के भीतर भी क्रमिक सॉर्ट ऑर्डर सुनिश्चित करता है, ULIDs के लिए रैंडम कंपोनेंट को बढ़ाकर जो एक ही टाइमस्टैम्प में बनाए गए हैं।

ULID कौन सा कैरेक्टर सेट उपयोग करता है?

ULID Crockford के Base32 एन्कोडिंग (0-9, A-Z जिसमें I, L, O, U शामिल नहीं हैं) का उपयोग करता है जो IDs को मैन्युअली पढ़ते या दर्ज करते समय भ्रम और ट्रांसक्रिप्शन त्रुटियों को कम करने के लिए डिज़ाइन किया गया है।

Resources

Crockford का Base32 वर्णमाला

एन्कोडिंग वैल्यूCharacterNotes
0-90-9दशमलव अंक
10-31A-Zपढ़ने में आसानी के लिए I, L, O, U को बाहर रखा गया

कैरेक्टर्स: 0123456789ABCDEFGHJKMNPQRSTVWXYZ

यह एन्कोडिंग डिकोडिंग के लिए केस-इंसेंसिटिव है (लेकिन ULIDs आमतौर पर अपरकेस में जनरेट होते हैं)।