نئے پروجیکٹس قبول کر رہے ہیں · صرف سینئر ٹیم · پہلے ریموٹ PWN-ALL · کسٹم سافٹ ویئر اسٹوڈیو

سافٹ ویئر میں رسٹ اور پائتھن جو طویل عرصے تک برقرار رہتا ہے وہ ٹیم جس نے اسے شپ کیا۔

ہم صرف سینئر ماہرین پر مشتمل ایک اسٹوڈیو ہیں جو جان بوجھ کر دو زبانوں میں حسبِ ضرورت سافٹ ویئر تیار کرتے ہیں: Rust ، جہاں غلطی کرنا مہنگا پڑتا ہے، اور Python ، جہاں سافٹ ویئر کو مارکیٹ تک پہنچانے میں تاخیر مہنگا پڑتا ہے۔

اوسط p99 بہتری 40 منتقلیوں میں
میमोری میں کمی 0% بمقابلہ JVM / Node بیس لائن
پروڈکشن میں خدمات 0 2024 سے
سیکیورٹی واقعات کی فراہمی 0 ہماری پوری تاریخ میں
وہ ٹیمیں جو ہمارے کوڈ پر بھروسہ کرتی ہیں
01 دو زبانیں۔ پانچ نہیں۔

ایک اسٹیک، جان بوجھ کر منتخب کیا گیا۔

کثیر لسانی ایجنسیاں پِچ ڈیک میں بہت شاندار لگتی ہیں۔ پروڈکشن میں ان کا مطلب ہوتا ہے تین بلڈ سسٹمز، چار قسمیں null کی، اور آدھی سہارا پانے والی سروسز کا قبرستان۔ ہم نے دو زبانیں منتخب کیں جو حقیقی کام کے 95% کا احاطہ کرتی ہیں — اور ہم دونوں میں بہت، بہت ماہر ہو گئے۔

ہاٹ پاتھ · نظام · حفاظت

زنگ

9.6 داخلی فٹ اسکور

گاربیج کلیکٹر کے بغیر میموری کے لحاظ سے محفوظ۔ کمپائل کے وقت ڈیٹا ریس سے پاک۔ وہ سب سے سخت کوڈ ریویوئر جو آپ کو کبھی ملے گا — اور ایک بار جب یہ آپ کو پاس کر دے، تو آپ کی سروس اتوار کو آپ کو جگائے گی نہیں۔

جب ہم اس کی طرف ہاتھ بڑھاتے ہیں

  • ادائیگی کے نظام اور رقم یا ذاتی طور پر قابل شناخت معلومات (PII) سے متعلق کوئی بھی چیز
  • ہاٹ API گیٹ وے پانچ نائن SLA کے ساتھ
  • کم تاخیر والے میچنگ انجنز، ٹریڈنگ، ریئل ٹائم
  • براؤزر میں بھیجے گئے WebAssembly ماڈیولز
  • CLI ٹولز اور ڈیمنز جو ملی سیکنڈز میں شروع ہونے چاہئیں

سمجھوتے جنہیں ہم چھپا نہیں سکتے

  • نئے ملازمین کی تیاری: تقریباً 2–4 ہفتے مؤثر ہونے میں
  • بڑے ورک اسپیسز پر کمپائل کے اوقات (ہم sccache کے ساتھ ٹھیک کرتے ہیں)
  • جاوا کے مقابلے میں نسبتاً نیا ماحولیاتی نظام — جہاں ضرورت ہو وہاں پختہ
گلو · ڈیٹا · ایم ایل · رفتار

پائتھن

9.3 داخلی مطابقت کا اسکور

وائٹ بورڈ سے کام کرنے والے سسٹم تک کا سب سے تیز راستہ۔ ڈیٹا، ایم ایل اور آٹومیشن کے لیے زمین پر سب سے بھرپور ماحولیاتی نظام۔ جدید پائتھن — 3.12، uv، ruff، pydantic، FastAPI — آپ کی زیادہ تر ضروریات کے لیے ایک درست، ٹائپ شدہ، اور کافی تیز زبان ہے۔

جب ہم اس کی طرف ہاتھ بڑھاتے ہیں

  • داخلی ٹولز، ڈیش بورڈز، ایڈمن پینلز
  • ETL، ڈیٹا پائپ لائنز، Airflow / Dagster / Prefect
  • ایم ایل — تربیت، پیشکش، تشخیص
  • آٹومیشنز اور وینڈر APIs کے ساتھ انٹیگریشنز
  • ایم وی پیز جو اس سہ ماہی میں شپ ہوں گے، اگلے سال نہیں

سودے بازیوں کو ہم چھپائیں گے نہیں

  • سنگل کور تھروپٹ Rust کے مقابلے میں 20–50 گنا سست ہے
  • فی درخواست زیادہ میموری — بعض کاموں کے لیے جان لیوا
  • ڈائنامک ٹائپنگ سخت mypy / pydantic کے بغیر نقصان دہ ہے
Rust جہاں غلطی مہنگی پڑتی ہے۔ Python جہاں تاخیر سے شپ کرنا مہنگا پڑتا ہے۔ ایک ٹیم۔ صفر عقائد۔
02 اعداد و شمار، تاثرات نہیں

رسٹ اور پائتھن بمقابلہ معمول کے مشتبہ۔

کسی میٹرک پر کلک کریں تاکہ یہ اجاگر ہو سکے کہ ہر زبان کہاں کھڑی ہے۔ اسکورز 0–10 ہیں، جو ہمارے اپنے بینچ مارکس اور عوامی ذرائع (Techempower R22، CLBG، ہماری حقیقی منتقلیاں) سے مرتب کیے گئے ہیں۔

معیار زنگ Python جاؤ سی++ جاوا Node.js
خام کارکردگی (p99، سنگل کور) 10 3 7 10 7 5
میموری سیفٹی اور ڈیٹا ریسز 10 9 8 2 8 7
کام کرنے والے پروٹوٹائپ کا وقت 5 10 7 3 6 8
ماحولیاتی نظام کی وسعت 8 10 7 9 10 9
بے آنسو ہم آہنگی 10 6 9 4 6 7
آپریشنز لاگت فی درخواست 10 5 8 9 پانچ 6
سینئر ٹیلنٹ کی دستیابی 6 10 7 8 10 9
10 سالہ برقرار رکھنے کی صلاحیت 10 8 8 5 8 5
03 سے → تک

جب آپ منتقلی کرتے ہیں تو کیا بدلتا ہے۔

شروع کرنے والی زبان منتخب کریں۔ Rust یا Python کی طرف منتقلی کے اثرات دیکھیں۔ یہ اعدادوشمار ہماری گزشتہ 40 منتقلی منصوبوں کے مڈیان ہیں، نہ کہ مارکیٹنگ کا خالی دعویٰ۔

فی الحال پر

سی / سی++

تیز، ہاں۔ لیکن ہر null pointer ایک ممکنہ CVE ہے، ہر thread ایک ممکنہ data race ہے، اور آپ کا build system کسی کی فل ٹائم ملازمت ہے۔

عام درد
  • میموری سیفٹی CVEs
  • غیر متعین رویہ
  • بلڈ سسٹم کی بے ترتیبی
منتقل کریں

رسٹ

گنجائش ×6.4
میमोरी فٹ پرنٹ −78%
رن ٹائم کریشز −99%
ماہانہ کمپیوٹ بل −65%

جب آپ فی الحال null-pointer کیڑے، ڈیٹا ریسز، یا ایسی میموری کے ساتھ کام کر رہے ہوں جو بے حد بڑھتی جائے۔ Rust رفتار برقرار رکھتا ہے اور غلطیوں کے جالے ختم کر دیتا ہے۔

منتقل کریں

پائتھن

ڈیولپر کی رفتار ×3.1
کوڈ کی لائنیں −55%
ریلیز کا وقت −60%
رن ٹائم اوور ہیڈ +40%

جب حقیقی لاگت سی پی یو نہیں بلکہ انجینئرنگ کا وقت ہو تو بہترین۔ خام تھروپٹ کو ایک چھوٹے فیڈبیک لوپ، بھرپور لائبریریوں، اور ایسے کوڈ کے لیے قربان کریں جسے انسان حقیقتاً پڑھ سکیں۔

ہم ان اعداد و شمار کو کیسے ناپتے ہیں

2023 اور 2026 کے درمیان مکمل ہونے والی 40 منتقلیوں کے میڈیئنز۔ تھروپٹ کو ایپلیکیشن لیئر پر ناپا گیا (حقیقی لوڈ کے تحت اینڈ ٹو اینڈ p50، مائیکروبینچ مارکس نہیں)۔ میموری مستحکم حالت میں RSS ہے۔ لاگت AWS/GCP پر ماہانہ آن ڈیمانڈ کمپیوٹ کی ہے، جب کہ دیگر تمام چیزیں برابر ہیں۔ انفرادی نتائج مختلف ہوتے ہیں — ہم درخواست پر وہ نتائج بھی شائع کرتے ہیں جو منصوبے کے مطابق نہیں ہوئے۔

04 ستارہ نشان کے بغیر اعداد

حقیقی لوڈ کے تحت فی سیکنڈ درخواستیں۔

ایک جیسا ورک لوڈ — JSON کی توثیق → Postgres سے استفسار → رینڈر — ایک واحد AMD Ryzen 7 باکس پر ناپا گیا۔ یہ مائیکروبینچ مارکس نہیں ہیں۔ ماخذ اور طریقہ کار ↓

  1. 1 رسٹ · Axum
    21,030 درخواستیں فی سیکنڈ
  2. 2 C# .NET · ASP.NET Core
    14,707 درخواستیں فی سیکنڈ
  3. 3 Node.js · Fastify
    9,340 درخواستیں فی سیکنڈ
  4. 4 C++ · ڈراگون
    7,200 درخواستیں فی سیکنڈ
  5. 5 گو · جِن
    3,546 req/s
  6. 6 پائتھن · فاسٹ اے پی آئی (یوورن)
    1,185 درخواستیں فی سیکنڈ
  7. 7 PHP · Laravel
    299 درخواستیں فی سیکنڈ

اسے صحیح طرح سے پڑھیں: پائتھن اس چارٹ کے نچلے حصے میں ہے، اور یہ ٹھیک ہے۔ ہم ہاٹ پاتھ پر FastAPI نہیں چلاتے۔ ہم اسے ایسی جگہ چلاتے ہیں جہاں 1,185 درخواستیں فی سیکنڈ پہلے ہی کام کے بوجھ کی ضرورت سے تقریباً دس گنا زیادہ ہیں، اور انجینئر کے گھنٹے CPU سائیکلز سے زیادہ قیمتی ہیں۔ طریقہ کار: AMD Ryzen 7، لینکس، ڈاکر، سنگل انسٹنس، ہر زبان کے لیے ایک مقبول فریم ورک۔ اعداد و شمار متعدد چلاؤ کے اوسط ہیں۔

05 خراب کوڈ کی اصل لاگت

ایک آؤٹیج آپ کو حقیقت میں کتنا نقصان پہنچاتا ہے۔

"فائیو نائن" مارکیٹنگ نہیں ہے۔ ذیل میں ایک گھنٹے کے غیر منصوبہ بند ڈاؤن ٹائم کی لاگت دی گئی ہے، صنعت کے لحاظ سے — ماخذوں کے ساتھ۔ ہم Rust بناتے ہیں جہاں یہ اعداد و شمار موجود ہیں۔

جب سے آپ نے یہ سیکشن کھولا ہے، لاگت میں اضافہ
فنانس / ہیلتھ کیئر $0 ~$83k/منٹ · $5M/گھنٹہ
آٹوموٹو $0 ~$38k/منٹ · $2.3M/فی گھنٹہ
بڑا ادارہ $0 $23,750/منٹ · $1.4 ملین/گھنٹہ
درمیانے درجے کا ادارہ $0 ~$5k/منٹ · $300k/گھنٹہ
مالیات اور صحت کی دیکھ بھال $5M+ / گھنٹہ

سب سے زیادہ اہم شعبے۔ ٹریڈنگ پلیٹ فارمز، تصفیہ کے نظام اور کلینیکل سسٹمز کسی سنگین خرابی کے دوران فی گھنٹہ 5 ملین ڈالر سے تجاوز کر سکتے ہیں — اس سے پہلے کہ کسی بھی ضابطہ جاتی یا قانونی کارروائی کے اخراجات شمار کیے جائیں۔

ماخذ: گارٹنر 2024 فورچون 500 مطالعہ؛ آئی ٹی آئی سی 2024 ڈاؤن ٹائم کی فی گھنٹہ لاگت۔
آٹوموٹو مینوفیکچرنگ $2.3 ملین / فی گھنٹہ

ایک رکی ہوئی پروڈکشن لائن تقریباً 640 ڈالر فی سیکنڈ جلا دیتی ہے۔ جولائی 2024 میں کراؤڈ اسٹرائیک کی بندش کی وجہ سے صرف ڈیلٹا ایئر لائنز کو پانچ دنوں میں 380 ملین ڈالر کا نقصان ہوا۔

ماخذ: Erwood Group 2025 صنعت کی تقسیم؛ Antithesis CrowdStrike پوسٹ مارٹم۔
بڑے ادارے (اوسطاً) $1.4 ملین فی گھنٹہ

BigPanda کے 2024 کے بڑے اداروں کے اعداد و شمار: $23,750 فی منٹ۔ ITIC رپورٹ کرتی ہے کہ 41% بڑے ادارے ہر گھنٹے کی بندش پر $1M سے $5M کے درمیان کا نقصان اٹھاتے ہیں۔

ماخذ: بگ پانڈا 2024 تحقیق؛ آئی ٹی آئی سی گیارہویں سالانہ ڈاؤن ٹائم کی گھنٹہ وار لاگت۔
گلوبل 2000 (آکسفورڈ اکنامکس) $400 ارب / سال

دنیا کی 2,000 سب سے بڑی کمپنیوں میں غیر منصوبہ بند ڈاؤن ٹائم کی کل پوشیدہ لاگت، آکسفورڈ اکنامکس کے 2024 کے مطالعے کے مطابق — جب آمدنی، پیداواریت اور ازالے کو یکجا کیا جائے تو فی کمپنیاوسطاً 200 ملین ڈالر کا اثر ۔

ماخذ: آکسفورڈ اکنامکس 2024، "ڈاؤن ٹائم کے پوشیدہ اخراجات"۔
درمیانے اور بڑے (معمولی گھنٹہ) $300k+ فی گھنٹہ

ITIC کا 2024 کا سروے: 90% سے زائد درمیانے اور بڑے ادارے اب غیر منصوبہ بند ڈاؤن ٹائم کے ایک گھنٹے کو اس کم از کم حد سے بالاتر سمجھتے ہیں — اس میں قانونی، شہری یا ضابطہ جاتی جرمانے شامل نہیں ہیں۔

ماخذ: آئی ٹی آئی سی 2024 کی ڈاؤن ٹائم کے گھنٹہ وار اخراجات کی رپورٹ۔
چھوٹے اور درمیانے درجے (SMB) $25k–$150k / فی گھنٹہ

2025 کے ITIC / Calyptix کے مشترکہ مطالعے سے پتہ چلتا ہے کہ بہت سے چھوٹے اور درمیانے درجے کے کاروبار (SMBs) ہر گھنٹے میں اتنا نقصان اٹھاتے ہیں؛ سیمنز کی رپورٹ کے مطابق، بندشوں سے متاثرہ چھوٹے اور درمیانے درجے کے کاروبار (SMEs) ہر گھنٹے میں $150,000 تک کا نقصان اٹھا سکتے ہیں۔ اوسطاً بندش کا واقعہ 87 منٹ تک جاری رہتا ہے۔

ماخذ: ITIC + Calyptix 2025؛ Siemens True Cost of Downtime 2024۔
06 منتخب کام

تین منصوبے۔ تین مختلف آگ کے واقعات۔

جہاں این ڈی اے ایسا کرنے کا کہتا ہے وہاں گمنام، اور جہاں نتائج ایسا کرنے کا کہتے ہیں وہاں مخصوص۔ یہ وہ مصروفیات ہیں جن کی طرف ہم پہلے کسی تکنیکی خریدار کی رہنمائی کریں گے۔

  1. کیس 01 پائتھن ڈیٹا بیس کرپٹو جی ڈی پی آر

    فن ٹیک ڈیٹا والٹ: 4× چھوٹا، 5.5× تیز، عالمی ضوابط کے مطابق۔

    کلائنٹ کے پاس 1.8 ٹی بی کا Postgres کلسٹر تھا جو پرانے کالمز، غیر فعال انڈیکسز، اور ان لائن انکرپٹڈ BLOBs کی وجہ سے سات سالوں میں پھول گیا تھا۔ کرپٹو ایک منسوخ شدہ لائبریری پر چل رہا تھا جسے تین الگ الگ آڈٹس میں نشان زد کیا گیا تھا۔ ریگولیٹری خطرات حقیقی تھے؛ آڈیٹرز گھیرے میں تھے۔

    ہم نے کیا

    • مکمل اسکیمہ + استعمال کا آڈٹ، غیر استعمال شدہ کالمز اور انڈیکسز کو حذف کریں، مناسب پارٹیشننگ متعارف کروائیں۔
    • کریپٹو پائپ لائن کو پرانی لائبریری سے جدید، آڈٹ شدہ AEAD اسٹیک میں منتقل کریں جس میں گردش کرنے والی چابیاں ہوں۔
    • BLOB-ان لائن انکرپشن کو حوالہ شدہ لفافہ انکرپشن اور مخصوص KMS میں تبدیل کریں۔
    • ڈیٹا برقرار رکھنے اور موضوع تک رسائی کے بہاؤ کو GDPR، CCPA اور APPI کے مطابق بنائیں۔
    نتیجہ

    یہی ڈیٹا، اسٹوریج کے بل کا ایک چوتھائی، 5.5 گنا تھروپٹ، اور اگلے نگران کے لیے ایک صاف ستھرا صحت کا سرٹیفیکیٹ۔

  2. کیس 02 رسٹ C++ → Rust سیکیورٹی اسٹوریج

    C++ سروس کو Rust میں دوبارہ لکھا گیا: 9 ہفتوں میں 100+ CVE کلاس کے بگ ختم کیے گئے۔

    C++ میں صارف کے سامنے آنے والی فائل پراسیسنگ سروس، جو ہر 4–5 دن بعد کریش ہوتی ہے اور ہر بار اسی جگہ پیچ کی جاتی ہے۔ ہمارے آڈٹ نے 100 سے زائد حقیقی بگز بے نقاب کیے: ڈینائل آف سروس راستے، بفر اوور فلو، غیر محدود درخواست ہینڈلنگ۔ رش کے اوقات میں 503s ہفتہ وار معمول بن چکے تھے۔ اسٹوریج کے شعبے میں، صارفین کی اپلوڈ کردہ فائلیں نقل شدہ فائلوں کے دلدل میں تبدیل ہو چکی تھیں جو بیکٹ (اسٹوریج کوٹا) کو ختم کر رہی تھیں۔

    ہم نے کیا

    • Rust (axum + tokio) میں مکمل ازسرنو تحریر، سخت ان پٹ توثیق اور محدود وسائل کی حدود کے ساتھ۔
    • پراپرٹی بیسڈ ٹیسٹ + ہر پارسر اور وائر فارمیٹ کی سرحد پر cargo-fuzz ۔
    • مواد کے پتہ لگانے والی اسٹوریج پرت، لکھنے کے وقت ڈیڈپلیکیشن کے ساتھ۔
    • چار گھنٹے کی انٹیگریشن ونڈو کے پیچھے بلیو-گرین رول آؤٹ، بغیر کسی ڈاؤن ٹائم کے۔
    نتیجہ

    سروس "نازک اور ہفتہ وار پیچ کی جانے والی" سے "ہم نے پیجر دیکھنا ہی چھوڑ دیا" ہو گئی۔ ڈیڈُپ کے ساتھ اسٹوریج کے اخراجات کم ہو گئے، غلطیوں اور 503s کے سپورٹ ٹکٹ خشک ہو گئے، اور دوبارہ لکھنے کی لاگت سہ ماہی کے اندر ہی پوری ہو گئی۔

  3. کیس 03 رسٹ پائتھن eBPF / XDP سی آر ایم · 4k صارفین

    انٹرپرائز سی آر ایم، دوبارہ تعمیر: 18 سرورز → 5، اخراجات میں 60%+ کمی۔

    اندرونی سی آر ایم IAM، SOC، مرکزی لاگنگ، چیٹ، فائل شیئر، VoIP اور اینڈ ٹو اینڈ انکرپٹڈ ڈیٹا سمیت 4,000+ صارفین کو سروس فراہم کر رہا ہے۔ اٹھارہ سرورز، اوپر Cloudflare، اور ایک کلاؤڈ بل جو ملازمین کی تعداد سے قطع نظر مسلسل بڑھتا جا رہا تھا۔ ہم نے ہاٹ پاٹھ کو Rust میں دوبارہ تعمیر کیا، انٹیگریشن اور رپورٹنگ کی تہہ میں Python کو برقرار رکھا، اور انگریس کے بالکل سامنے ایک eBPF/XDP فلٹر نصب کیا۔

    ہم نے کیا

    • Rust سروسز: توثیق (IAM)، ریئل ٹائم میسجنگ، VoIP سگنلنگ، فائل ٹرانسفر۔
    • ایڈمن انٹرفیسز، رپورٹنگ، ایس او سی ایونٹ کوریلیشن، وینڈر APIs کے ساتھ انضمام کے لیے پائتھن۔
    • کرنل پر eBPF/XDP بوٹ اور غلط استعمال کی فلٹرنگ — اس ورک لوڈ کے لیے Cloudflare کی جگہ لے لی گئی۔
    • ساخت شدہ لاگنگ پائپ لائن کو زیرو-کاپی اسکیما کے گرد دوبارہ لکھا گیا۔
    نتیجہ

    تیرہ سرور کم، Cloudflare کا الگ مدّہ ختم، SOC ٹیم کو لاگنگ پائپ لائن کے ذریعے صاف سگنل مل رہا ہے، اور CFO نے انفراسٹرکچر بجٹ کے بارے میں الجھا دینے والے سوالات کرنا بند کر دیے۔

07 ہم حقیقت میں کیسے کام کرتے ہیں

ڈائل گھمائیں۔ منصوبے کو بدلتے دیکھیں۔

ہر پروجیکٹ رفتار، لاگت اور قابلِ اعتماد ہونے کے درمیان توازن قائم کرتا ہے۔ نیچے دیا گیا پانچ مراحل پر مشتمل تخمینہ صنعت کے اوسط اعداد و شمار کے مطابق ترتیب دیا گیا ہے (دریافت 2–6 ہفتے، فنِ تعمیر 1–4 ہفتے، نفاذ 4–20 ہفتے، مضبوطی 2–8 ہفتے، حوالگی 1–2 ہفتے — فی 2024–2026 کی رپورٹس NIX United، Agilie، SOLTECH، OTG Lab سے)۔ سلائیڈرز کو حرکت دیں؛ منصوبہ دوبارہ وزن کرتا ہے۔

01

Discovery

3 ہفتے

اپنا کوڈ پڑھیں، اپنے آپریشنز سے انٹرویو کریں، نامعلوم امور کی فہرست بنائیں، ہر جزو کے لیے زبان کا انتخاب کریں۔

  • ڈومین انٹرویوز اور کوڈ آڈٹ
  • رسک رجسٹر اور ایس ایل اے اہداف
  • ہر سروس کی زبان کے فیصلے
02

آرکیٹیکچر

2 ہفتے

کوڈ سے پہلے معاہدات۔ OpenAPI / protobuf، ڈیٹا ماڈلز، تعیناتی کی ٹوپولوجی، رن بک کے خاکے۔

  • ہر عوامی معاہدے کے لیے آر ایف سیز
  • ماڈل ڈیٹا + منتقلی کا منصوبہ
  • انفراسٹرکچر بطور کوڈ بیس لائن
03

نفاذ

8 ہفتے

چھوٹے PRs، پہلے دن سے CI گرین، ہر مرج پر ڈیپلائے، دوسرے سینئر کی جانب سے جائزہ۔

  • Rust: axum · tonic · sqlx
  • Python: FastAPI · Pydantic · SQLAlchemy
  • ہفتہ وار ڈیمو + تبدیلیوں کا لاگ
04

سختی کاری

3 ہفتے

فززنگ، پراپرٹی بیسڈ ٹیسٹ، حقیقی ٹریفک کے خلاف لوڈ ٹیسٹ، تھریٹ ماڈل۔

  • cargo-fuzz · proptest · hypothesis
  • k6 لوڈ ٹیسٹ جو SLOs سے منسلک ہیں
  • سیکیورٹی جائزہ اور انحصار آڈٹ
05

سپردگی

1 ہفتہ

رن بکس، آن کال روٹیشن، متبادل حل (ADRs)، اور ایک ایسی ٹیم جس نے پہلے ہی یہ ایک بار تیار کر کے پیش کیا ہو۔

  • رن بکس + آن کال میٹرکس
  • ADR لاگ اور فنِ تعمیر کے خاکے
  • لانچ کے بعد 30 روزہ معاونت
08 ایک ہی مسئلہ، دو زبانیں

ایک ہی این پوائنٹ ہر ایک میں کیسا دکھائی دیتا ہے۔

صارف حاصل کریں، ان پٹ کی توثیق کریں، Postgres میں محفوظ کریں، JSON واپس کریں۔ زبانوں کے درمیان سوئچ کریں — دونوں اصلی کوڈ ہیں جو ہم حقیقت میں شپ کریں گے۔

SQL_CREATE_USER = "insert into users(email,name) values(lower($1),$2) returning id,email,name"
Name = Annotated[str, StringConstraints(strip_whitespace=True, min_length=1, max_length=120)]

class UserIn(BaseModel):
    email: EmailStr
    name: Name

class UserOut(UserIn):
    id: int

@router.post("/users", response_model=UserOut, status_code=201)
async def create_user(u: UserIn) -> UserOut:
    try:
        row = await pool.fetchrow(SQL_CREATE_USER, str(u.email), u.name)
   except UniqueViolationError as exc:
        raise HTTPException(status_code=409, detail="ای میل پہلے سے موجود ہے") from exc
    if row is None:
        raise HTTPException(status_code=500, detail="درج کرنے میں ناکامی")
    return UserOut.model_validate(dict(row))
#[derive(Deserialize, Validate)]
#[serde(deny_unknown_fields)]
pub struct UserIn {
    #[validate(email)]
    pub email: String,
    #[validate(custom(function = "valid_name"))]
    pub name: String,
}

pub async fn create_user(
    State(pool): State<PgPool>,
    ValidatedJson(u): ValidatedJson<UserIn>,)
 -> Result<(StatusCode, Json<UserOut>), ApiError> {
   let user = sqlx::query_as!(UserOut,
        "insert into users(email,name) values(lower($1),$2) returning id,email,name",
        u.email.as_str(),
        u.name.trim(),
    )
    .fetch_one(&pool)
    .await
    .map_err(ApiError::from_db)?;

    Ok((StatusCode::CREATED, Json(user)))
}
کوڈ کی لائنیں
16 22
کل پیداوار
1,185 درخواستیں فی سیکنڈ 21,030 درخواستیں فی سیکنڈ
p50 تاخیر
21.0 ms 1.6 ملی سیکنڈ
آرام کی حالت میں ریم
41.2 ایم بی 8.5 ایم بی
ہم ایک کاروباری دن کے اندر جواب دیتے ہیں۔ مذاق نہیں۔

آپ نے پورا صفحہ پڑھ لیا۔
آئیے اسے بنائیں۔

ہمیں بتائیں کہ آپ کے اسٹیک میں کیا مسئلہ ہے، یا آپ شروع سے کیا بنانا چاہتے ہیں۔ آپ کو ایک حقیقی انجینئرنگ رائے ملے گی — کوئی سیلز ڈیک نہیں۔

  • کوئی جونئیر انجینئر نہیں۔ کوئی آف شورنگ نہیں۔
  • مقررہ قیمت کے اختیارات محدود کام پر۔
  • ہم آپ سے کچھ پوچھنے سے پہلے NDA پر دستخط کرائیں گے۔