منصوبے کے بارے میں

FrankenSQLite، SQLite کا ایک آزاد، از سرِ نو Rust میں لکھا گیا نفاذ ہے، جس کا مقصد SQLite کی واحد مصنف رکاوٹ اور پائیداری کے خدشات کو حل کرنا ہے۔ یہ متوازی مصنفین کی اجازت دینے کے لیے صفحہ سطح کثیر النسخہ ہم وقتی کنٹرول (MVCC) متعارف کراتا ہے، جو روایتی فائل سطح تالے کی جگہ لیتا ہے۔ انجن ایک محفوظ Rust کور کے ساتھ ڈیزائن کیا گیا ہے، جس میں `unsafe` کوڈ صرف VFS اور اختیاری C ABI شِم تک محدود ہے۔ **اہم خصوصیات:** - **متوازی مصنفین:** صفحہ سطح MVCC کے ساتھ بطور ڈیفالٹ سیریلائز ایبل اسنیپ شاٹ آئسولیشن (SSI)، جس سے مختلف صفحات کو چھونے والے مصنفین اوورلیپ کر سکتے ہیں۔ ایک ہی صفحہ کے تنازعات فی الحال `SQLITE_BUSY_SNAPSHOT` کے ساتھ ختم اور دوبارہ کوشش کرتے ہیں؛ ایک محفوظ رائٹ-مرج سیڑھی غیر فعال ہے۔ - **فائل فارمیٹ مطابقت:** معیاری SQLite 3.x ڈیٹا بیس پڑھتا اور لکھتا ہے، UTF-8 اور UTF-16 ٹیکسٹ انکوڈنگز کی حمایت کرتا ہے۔ برابری کی تصدیق UTF-8 پر سب سے گہری ہے۔ - **محفوظ Rust انجن:** بنیادی انجن، pager، parser، VDBE، اور متعلقہ crates `unsafe` کوڈ سے منع کرتے ہیں، استثناء صرف `fsqlite-vfs` (mmap/shm) اور `fsqlite-c-api` (FFI) میں ہے۔ - **تہہ دار معماری:** ایک 28 رکنی Cargo ورک اسپیس جس میں types، errors، VFS، pager، WAL، MVCC، B-tree، parser، planner، VDBE، functions، اور extensions (FTS5، JSON1، R-tree، ICU، وغیرہ) کے crates شامل ہیں۔ - **پائیداری تحقیق:** ممکنہ خود شفا بخش اسٹوریج کے لیے RaptorQ/ECS بلڈنگ بلاکس شامل ہیں، لیکن یہ ڈیزائن کے علاوہ جزوی نفاذ ہے، ابھی مطابقت موڈ میں فعال نہیں۔ - **ٹرانزیکشن مشاہدہ:** ٹرانزیکشن اعداد و شمار، فعال ٹرانزیکشنز، مشیر انتباہات، اور JSON ٹائم لائنز کے لیے PRAGMA سطحیں۔ **موجودہ حیثیت:** رن ٹائم ہائبرڈ ہے، معیاری SQLite فائلوں پر مطابقت موڈ زندہ راستہ ہے۔ نیٹو موڈ اور ECS حصے ڈیزائن کے علاوہ جزوی نفاذ ہیں۔ CLI ایک چھوٹا شیل ہے، مکمل sqlite3 فرنٹ اینڈ نہیں۔ FTS3/FTS4 جیسے extensions صرف مددگار سطح پر ہیں؛ `dbstat`، `carray`، اور `dbpage` نافذ نہیں ہیں۔ planner crate موجود ہے لیکن تمام استفسارات کے لیے بنیادی ہاٹ پاتھ نہیں ہے۔