UUID v7 جنریٹر

آن لائن UUID v7 اقدار تیار کریں: وقت کے لحاظ سے ترتیب دینے کے قابل UUIDs جن میں 48-بٹ ملی سیکنڈ ٹائم اسٹیمپ اور 74 رینڈم بٹس شامل ہیں۔

فارمیٹ
تیار کردہ IDs
تیار۔ اپنے براؤزر میں UUID v7 اقدار تیار کریں۔

یہ ID کیسے بنتی ہے

ترتیب (Layout)
48-بٹ یونکس ملی سیکنڈ ٹائم اسٹیمپ، ورژن 7 بٹس، RFC ویرینٹ بٹس اور رینڈم فل۔
اینٹروپی (Entropy)
اس امپلیمنٹیشن میں 74 رینڈم بٹس؛ اس میں کوئی یکساں بڑھنے والا (monotonic) کاؤنٹر نہیں ہے۔
وقت
جی ہاں۔ پہلے 48 بٹس تخلیق کے وقت کو انکوڈ کرتے ہیں، اس لیے مختلف ملی سیکنڈز میں IDs وقت کے لحاظ سے ترتیب پاتے ہیں۔
ٹکراؤ (collision) کا خطرہ
ایک ملی سیکنڈ کے اندر، ٹکراؤ کا انحصار 74 رینڈم بٹس پر ہوتا ہے؛ ایک ہی ملی سیکنڈ میں انتہائی زیادہ حجم کے لیے ایک مربوط ID سروس استعمال کرنی چاہیے۔
مثال
01a044bc-5f3e-7c5e-a3ef-0eef6740f5fa

آپ کی IDs مضبوط براؤزر رینڈمنس کے ساتھ مقامی طور پر تیار کی جاتی ہیں۔ BroBroGo کو کچھ بھی نہیں بھیجا جاتا۔

اکثر پوچھے گئے سوالات

UUID v4 کے بجائے UUID v7 کا انتخاب کیوں کریں؟

UUID v7 اپنی شکل برقرار رکھتا ہے لیکن وقت کے لحاظ سے ترتیب پاتا ہے، جس سے لاگز، ڈیٹا بیس انڈیکسز اور ایونٹ اسٹریمز کو ترتیب وار رکھنے میں مدد مل سکتی ہے۔

کیا UUID v7 تخلیق کا وقت چھپاتا ہے؟

نہیں۔ ٹائم اسٹیمپ ID کا حصہ ہوتا ہے۔ اگر آپ کو وقت کے ڈیٹا کے بغیر مبہم شناخت کنندہ کی ضرورت ہو تو UUID v4 یا NanoID استعمال کریں۔

یو یو آئی ڈی v7 جنریٹر: وقت پر مبنی، غیر قابل قیاس شناخت کنندگان

یو یو آئی ڈی v7 (Universally Unique Identifier version 7) ایک 36 حروف پر مشتمل معیاری شناخت کنندہ ہے جو وقت اور تصادفی پن کو یکجا کرتا ہے۔ اس صفحے پر آپ 1 سے 100 تک اتنے ہی شناخت کنندگان پیدا کر سکتے ہیں، اور ہر ایک کے شروع میں 48 بٹ کا یونکس ملی سیکنڈ ٹائم اسٹیمپ موجود ہوتا ہے۔ یہ شناخت کنندگان براؤزر میں مقامی طور پر بنائے جاتے ہیں، سرور پر کچھ نہیں بھیجا جاتا، اور انہیں انفرادی طور پر یا اجتماعی طور پر کاپی کیا جا سکتا ہے۔

UUID v7 کیا ہے اور یہ کیسے کام کرتا ہے؟

UUID v7 ایک عالمی سطح پر منفرد شناخت کنندہ ہے جسے RFC 9562 میں معیاری بنایا گیا ہے۔ یہ 128 بٹس پر مشتمل ہوتا ہے، جسے 36 حروف کی صورت میں دکھایا جاتا ہے (32 ہیکساڈیسیمل حروف، 4 ہائفنز کے ساتھ)۔ اس کی خاص بات یہ ہے کہ پہلے 48 بٹس (یعنی پہلے 12 ہیکساڈیسیمل حروف) ایک یونکس ملی سیکنڈ ٹائم اسٹیمپ پر مشتمل ہوتے ہیں، جبکہ باقی 80 بٹس تصادفی ہوتے ہیں۔

یہ ڈھانچہ دو اہم مسائل حل کرتا ہے:

  • ترتیب پذیری: چونکہ ٹائم اسٹیمپ شروع میں ہوتا ہے، اس لیے UUID v7 قدرتی طور پر تخلیق کے وقت کے مطابق ترتیب پاتے ہیں۔ یہ ڈیٹا بیس انڈیکسنگ کے لیے بہت مفید ہے۔
  • غیر قابل قیاس پن: تصادفی حصہ کافی بڑا (80 بٹ) ہوتا ہے، جس کی وجہ سے شناخت کنندگان کو اندازہ نہیں لگایا جا سکتا۔ یہ حفاظتی تقاضوں کے لیے اہم ہے۔

تاہم، ایک اہم حد یہ ہے کہ اسی ملی سیکنڈ میں بنائے گئے متعدد UUID v7 ایک دوسرے کے ساتھ سختی سے ترتیب نہیں رکھتے۔ اس کی وجہ یہ ہے کہ اسی ملی سیکنڈ میں ٹائم اسٹیمپ ایک جیسا ہوتا ہے اور پھر تصادفی حصہ ترتیب کا تعین کرتا ہے۔ لہٰذا، اگر آپ کو اسی ملی سیکنڈ کے اندر قطعی ترتیب درکار ہو تو UUID v7 اس کی ضمانت نہیں دیتا۔

اس صفحے کی خصوصیات

یہ صفحہ خاص طور پر UUID v7 پر مرکوز ہے، نہ کہ عمومی UUID پیدا کرنے والے ٹول پر۔ اس میں مندرجہ ذیل خصوصیات ہیں:

  • فارمٹ: صرف UUID v7 (فارمٹ چوزر میں منتخب)
  • گنتی: صارف 1 سے 100 تک شناخت کنندگان کی تعداد مقرر کر سکتا ہے۔ کسی بھی آپشن کو تبدیل کرنے پر فوری طور پر نئے IDs بن جاتے ہیں۔
  • کیس: آپ UUID کو بڑے حروف (UPPERCASE) یا چھوٹے حروف میں دکھانے کا انتخاب کر سکتے ہیں۔
  • ہائفنز: آپ ہائفنز کو شامل یا خارج کر سکتے ہیں۔ اگر ہائفنز ہٹا دیے جائیں تو 32 حروف کا ایک تار (string) ملتا ہے، جو کچھ سسٹمز کے لیے آسان ہوتا ہے۔
  • کاپی کرنا: کسی ایک ID پر کلک کرنے سے وہ کلپ بورڈ پر کاپی ہو جاتا ہے۔ "کاپی آل" کے بٹن سے تمام IDs ایک ساتھ کاپی ہو جاتے ہیں، اور "Copied all!" کا پیغام ظاہر ہوتا ہے۔
  • اسٹیٹس: "Ready." اور "Generated." دو اسٹیٹس دکھائے جاتے ہیں۔ جب جنریشن مکمل ہو جاتی ہے تو "Generated." نظر آتا ہے۔

UUID v7 کے ساختی اجزاء

آئیے ایک مثال لیتے ہیں: 018f3c6e-5b7a-7a00-8000-1a2b3c4d5e6f

یہ 36 حروف کا معیاری فارمیٹ ہے۔ پہلے 8 حروف (018f3c6e) ٹائم اسٹیمپ کے پہلے 32 بٹس ہیں۔ اگلے 4 حروف (5b7a) اگلے 16 بٹس (ٹائم اسٹیمپ کا بقیہ حصہ) ہیں۔ تیسرے حصے (7a00) میں پہلے 4 بٹس ورژن نمبر (یہاں 7) ہیں اور بقیہ 12 بٹس تصادفی ہیں۔ چوتھے حصے (8000) میں پہلے 2 بٹس ویرینٹ (variant) ہیں اور بقیہ 14 بٹس تصادفی۔ آخری 12 حروف (1a2b3c4d5e6f) تصادفی ہیں۔

کل ٹائم اسٹیمپ 48 بٹس (12 ہیکساڈیسیمل حروف) پر مشتمل ہے، جبکہ تصادفی حصہ 80 بٹس (20 حروف) ہے۔

UUID v7 بمقابلہ UUID v4: فرق اور فوائد

خصوصیت UUID v4 UUID v7
بنیاد مکمل تصادفی (122 بٹ تصادفی) 48 بٹ ٹائم اسٹیمپ + 74 بٹ تصادفی
ترتیب کوئی ترتیب نہیں تخلیق کے وقت کے لحاظ سے ترتیب (اسی ملی سیکنڈ میں سختی نہیں)
انڈیکس لوکلٹی بری (B-tree انڈیکس میں بکھراؤ) بہتر (انڈیکس میں قریب قریب N)
عدم تصادم کا امکان بہت زیادہ (128 بٹ تصادفی) اسی ملی سیکنڈ میں بھی 2^74 امکانات کی وجہ سے انتہائی کم
استعمال عمومی منفرد IDs ڈیٹا بیس پرائمری کلید، ایونٹ سورسنگ، آڈٹ ٹریل

UUID v7 کا سب سے بڑا فائدہ انڈیکس لوکلٹی ہے۔ UUID v4 کی تصادفی نوعیت کی وجہ سے ڈیٹا بیس میں نئے ریکارڈ بکھر جاتے ہیں، جس سے انڈیکس کی کارکردگی متاثر ہوتی ہے۔ UUID v7 میں چونکہ ٹائم اسٹیمپ ایک ساتھ بڑھتا ہے، اس لیے نئے IDs ایک دوسرے کے قریب آتے ہیں، جس سے ڈیٹا بیس انڈیکس کی دیکھ بھال آسان ہوتی ہے۔

ڈیٹا بیس انڈیکسنگ میں وقت پر مبنی ترتیب کی اہمیت

ڈیٹا بیس میں پرائمری کلید کے طور پر استعمال ہونے والے شناخت کنندگان کی ترتیب انڈیکس کی کارکردگی پر گہرا اثر ڈالتی ہے۔

  • B-tree انڈیکس: زیادہ تر ڈیٹا بیس (جیسے PostgreSQL, MySQL) B-tree انڈیکس استعمال کرتے ہیں۔ جب نئی قطعات شامل کی جاتی ہیں، تو انڈیکس میں نئی اندراجات ڈالی جاتی ہیں۔ اگر شناخت کنندگان تصادفی ہوں (جیسے UUID v4)، تو نئی اندراجات پورے درخت میں بکھر جاتی ہیں، جس سے انڈیکس کے صفحات بار بار تقسیم ہوتے ہیں اور I/O آپریشنز بڑھ جاتے ہیں۔
  • UUID v7 کے ساتھ: چونکہ زیادہ تر نئے IDs وقت کے ساتھ بڑھتے ہیں، وہ انڈیکس کے آخری حصے میں جمع ہو جاتے ہیں۔ اس سے انڈیکس کی دیکھ بھال کی لاگت کم ہو جاتی ہے اور insert performance بہتر ہوتی ہے۔

تاہم، یہ نوٹ کرنا ضروری ہے کہ UUID v7 اسی ملی سیکنڈ میں پیدا ہونے والے IDs کے لیے قطعی ترتیب کی ضمانت نہیں دیتا۔ اگر آپ کے سسٹم میں بیک وقت بہت سارے ریکارڈ بنتے ہیں (جیسے کہ سینکڑوں فی ملی سیکنڈ)، تو ان کا انڈیکس میں نسبتاً قریب ہونا تو یقینی ہے، لیکن ان کے درمیان صحیح ترتیب کا تعین ٹائم اسٹیمپ کے بعد تصادفی حصہ کرے گا۔ اس صورت میں آپ کو کسی دوسری تکنیک (جیسے مونوٹونک کاؤنٹر) کی ضرورت ہو سکتی ہے۔

براؤزر میں مقامی جنریشن اور رازداری

اس صفحے کی ایک اہم خصوصیت یہ ہے کہ تمام IDs براؤزر میں مقامی طور پر پیدا ہوتے ہیں۔ کوئی بھی ڈیٹا سرور کو نہیں بھیجا جاتا۔ یہ ان صارفین کے لیے بہت اہم ہے جو رازداری اور ڈیٹا کی حفاظت کو ترجیح دیتے ہیں۔

براؤزر میں تصادفی اعداد پیدا کرنے کے لیے crypto.getRandomValues() API استعمال کیا جاتا ہے، جو کرپٹوگرافک طور پر مضبوط تصادفی پن فراہم کرتا ہے۔ یہ وہی فنکشن ہے جو محفوظ کلیدوں اور ٹوکنز بنانے کے لیے استعمال ہوتا ہے۔ لہٰذا، پیدا کردہ IDs کا اندازہ لگانا عملی طور پر ناممکن ہے۔

صارفین اپنی مرضی کے مطابق فارمیٹ بھی تبدیل کر سکتے ہیں:

  • بڑے حروف (UPPERCASE): بعض سسٹمز میں بڑے حروف کی ضرورت ہوتی ہے۔
  • ہائفنز: معیاری 36 حروف کا فارمیٹ ہائفنز کے ساتھ آتا ہے، لیکن اگر آپ کو خالص 32 حروف چاہییں (مثلاً کسی ڈیٹا بیس میں سٹور کرنے کے لیے)، تو آپ ہائفنز ہٹا سکتے ہیں۔

اکثر پوچھے جانے والے سوالات (FAQ)

س: کیا UUID v7 اور ULID میں فرق ہے؟

جی ہاں۔ دونوں وقت پر مبنی ہیں، لیکن ULID 26 حروف کا ہوتا ہے (کروکیفائڈ بیس 32) اور اس میں ٹائم اسٹیمپ کے بعد تصادفی حصہ ہوتا ہے۔ دونوں ایک جیسے مسائل حل کرتے ہیں، لیکن UUID v7 ایک معیاری فارمیٹ (RFC 9562) ہے جبکہ ULID ایک کمیونٹی معیار ہے۔ اس صفحے پر صرف UUID v7 پیدا کیا جاتا ہے۔

س: کیا اسی ملی سیکنڈ میں پیدا ہونے والے دو UUID v7 میں تصادم ہو سکتا ہے؟

تصادم کا امکان انتہائی کم ہے کیونکہ تصادفی حصہ 74 بٹس پر مشتمل ہے۔ 2^74 امکانات ہیں، اس لیے عملی طور پر تصادم نہ ہونے کے برابر ہے۔

س: کیا میں پیدا کردہ IDs کو ڈیٹا بیس پرائمری کلید کے طور پر استعمال کر سکتا ہوں؟

ہاں، یہ ایک عام استعمال ہے۔ UUID v7 کو ڈیٹا بیس میں ترتیب وار انڈیکس رکھنے کے لیے ڈیزائن کیا گیا ہے، جس سے insert performance بہتر ہوتی ہے۔

س: کیا یہ ٹول انٹرنیٹ کے بغیر کام کرتا ہے؟

صفحہ لوڈ ہونے کے بعد، تمام جنریشن براؤزر میں مقامی طور پر ہوتی ہے۔ لہٰذا، ایک بار صفحہ کھل جانے کے بعد آپ انٹرنیٹ کے بغیر بھی IDs بنا سکتے ہیں۔

س: کیا میں 100 سے زیادہ IDs بنا سکتا ہوں؟

نہیں، موجودہ ورژن میں زیادہ سے زیادہ 100 IDs کی اجازت ہے۔ اگر آپ کو زیادہ درکار ہوں تو آپ متعدد بار جنریشن کر سکتے ہیں۔

س: کیا ہائفنز کے بغیر فارمیٹ بھی معیاری ہے؟

معیاری UUID میں ہائفنز ضروری ہیں، لیکن بہت سے سسٹمز (جیسے ڈیٹا بیس کالم) بغیر ہائفنز کے 32 حرفی تار قبول کرتے ہیں۔ اس صفحے پر آپ دونوں فارمیٹس میں سے انتخاب کر سکتے ہیں۔

یہ صفحہ UUID v7 کے فوائد کو عملی شکل دیتا ہے: وقت پر مبنی ترتیب، تصادفی پن، اور براؤزر میں مکمل رازداری۔ ڈیٹا بیس ڈویلپرز، سیکیورٹی انجینئرز، اور منتظمین کے لیے یہ ایک کارآمد ٹول ہے جو پیچیدہ لائبریریوں کی ضرورت کے بغیر فوری شناخت کنندگان فراہم کرتا ہے۔