একটি ওয়েব ব্রাউজারে DBMS ব্যবহার করতে SQLite WASM সমর্থন যোগ করা হয়েছে

SQLite

একটি এসিআইডি-সম্মত রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম, সি-তে লেখা অপেক্ষাকৃত ছোট লাইব্রেরিতে রয়েছে

The SQLite বিকাশকারীরা বাস্তবায়নের জন্য একটি প্রকল্প তৈরি করছে একটি লাইব্রেরি কম্পাইল করার ক্ষমতা মধ্যবর্তী WebAssembly কোড যা একটি ওয়েব ব্রাউজারে চালানো যেতে পারে এবং জাভাস্ক্রিপ্ট ভাষায় ওয়েব অ্যাপ্লিকেশন থেকে ডাটাবেসের সাথে কাজ সংগঠিত করার জন্য উপযুক্ত।

উদ্দেশ্য প্রজেক্টের একটি কার্যকরী জাভাস্ক্রিপ্ট লিঙ্ক প্রদান করা হয় যেটি SQLite API-এর কার্যকারিতায় অভিন্ন। ওয়েব ডেভেলপারদের sql.js বা Node.js এর স্টাইলে ডেটা নিয়ে কাজ করার জন্য একটি উচ্চ-স্তরের অবজেক্ট-ওরিয়েন্টেড ইন্টারফেস দেওয়া হয়, একটি নিম্ন-স্তরের C API এবং একটি API ভিত্তিক ওয়েব ওয়ার্কার মেকানিজম যা অ্যাসিঙ্ক্রোনাস তৈরি করতে দেয়। কন্ট্রোলার। যেগুলো আলাদা থ্রেডে চলে।

ওয়েব ওয়ার্কার-ভিত্তিক API-এর উপর থ্রেডিংয়ের জটিলতাগুলি আড়াল করতে, এর একটি বৈকল্পিক মেকানিজমের উপর ভিত্তি করে প্রোগ্রামিং ইন্টারফেস প্রতিশ্রুতি।

ওয়েব অ্যাপ্লিকেশনগুলি SQLite-এর WASM সংস্করণে যে ডেটা সঞ্চয় করে তা বর্তমান সেশনের মধ্যে অবস্থিত হতে পারে (পৃষ্ঠা পুনরায় লোড করার পরে হারিয়ে যায়) বা ক্লায়েন্ট সাইডে টিকে থাকে (সেশন জুড়ে টিকে থাকে)।

স্থায়ী স্টোরেজের জন্য, স্থানীয় ফাইল সিস্টেমে ডেটা রাখার জন্য ব্যাকএন্ড প্রস্তুত করা হয়েছে window.localStorage এবং window.sessionStorage API-এর উপর ভিত্তি করে OPFS (অরিজিন-প্রাইভেট ফাইলসিস্টেম, ফাইল সিস্টেম অ্যাক্সেস API-এর এক্সটেনশন, বর্তমানে শুধুমাত্র ওয়েবকিট এবং ক্রোমিয়াম-ভিত্তিক ব্রাউজারগুলিতে উপলব্ধ) এবং ব্রাউজার স্থানীয় স্টোরেজ ব্যবহার করে।

লোকাল স্টোরেজ/সেশন স্টোরেজ ব্যবহার করার সময়, ডেটা যথাযথ কী/মান স্টোরে ম্যাপ করা হয়, যেখানে OPFS ব্যবহার করার সময়, দুটি বিকল্প রয়েছে: WASMFS ব্যবহার করে একটি ভার্চুয়াল FS অনুকরণ করা, এবং একটি পৃথক sqlite3_vfs বাস্তবায়ন যা একটি SQLite ভিত্তিক VFS স্তর অফার করে৷ OPFS-এ .

এমস্ক্রিপ্টেন কম্পাইলারটি WASM উপস্থাপনায় SQLite তৈরি করতে ব্যবহৃত হয়. ফলাফল হল sqlite3.js এবং sqlite3.wasm ফাইল যা আপনি আপনার জাভাস্ক্রিপ্ট প্রকল্পে (HTML এবং JavaScript নমুনা) অন্তর্ভুক্ত করতে পারেন।

নির্দিষ্ট উদ্দেশ্যের এই প্রকল্পের উল্লেখ করা হয়েছে:

অ-উদ্দেশ্যে উল্লেখ করা ব্যতীত, sqlite3 C API-এর জন্য বৈশিষ্ট্যগুলির একটি কম-বেশি সম্পূর্ণ মোড়ক প্রদান করুন, যতদূর C-এর সাথে WASM-এর বৈশিষ্ট্য সমতা অনুমতি দেয়৷ প্রকৃতপক্ষে, অন্তত নিম্নলিখিত APIগুলি প্রদান করুন৷

  • একটি নিম্ন স্তরের sqlite3 API আবদ্ধ করুন যা ব্যবহারের ক্ষেত্রে যতটা সম্ভব নেটিভের কাছাকাছি।
  • একটি উচ্চ স্তরের OO API, আরও sql.js এবং node.js শৈলী বাস্তবায়নের মত।
  • একটি কর্মী-ভিত্তিক API যা কর্মী বার্তাগুলির মাধ্যমে উপরের APIগুলির সাথে যোগাযোগ করে৷ এটি প্রধান থ্রেডে ব্যবহার করার জন্য ডিজাইন করা হয়েছে, একটি কর্মী থ্রেডে নিম্ন-স্তরের API ইনস্টল করা আছে এবং কর্মী বার্তাগুলির মাধ্যমে তাদের সাথে যোগাযোগ করা হয়েছে।
  • ওয়ার্কার API-এর একটি প্রতিশ্রুতি-ভিত্তিক বৈকল্পিক যা ব্যবহারকারীর আন্তঃ-থ্রেড যোগাযোগের দিকগুলি সম্পূর্ণরূপে লুকিয়ে রাখে।
  • যতটা সম্ভব, উপলব্ধ JS API ব্যবহার করে ক্লায়েন্ট-সাইড ক্রমাগত স্টোরেজ সমর্থন করুন। এই লেখার সময়, এতে window.localStorage এবং .window.sessionStorage ব্যাকএন্ডের মাধ্যমে সোর্স প্রাইভেট ফাইল সিস্টেম (OPFS) এবং (খুব সীমিত) স্টোরেজ অন্তর্ভুক্ত রয়েছে

জন্য হিসাবে অ-নির্দিষ্ট উদ্দেশ্য:

  • যেহেতু WASM একটি ওয়েব-কেন্দ্রিক প্রযুক্তি এবং UTF-8 সেই ক্ষেত্রে এনকোডিংয়ের রাজা, তাই UTF3-সম্পর্কিত sqlite16 API-কে সমর্থন করার কোনো বর্তমান পরিকল্পনা নেই।
  • যদিও ব্রাউজার-এর বাইরে WASM রানটাইমগুলির জন্য সমর্থন ব্যাপক, এই প্রকল্পটি বর্তমানে (2022 সালের শেষের দিকে) শুধুমাত্র ব্রাউজার টার্গেটে ফোকাস করা হয়েছে। যদিও ওয়েব-সম্পর্কিত বাস্তবায়নের বিবরণ প্রাধান্য পায়, এবং API-এর জাভাস্ক্রিপ্ট উপাদানগুলি বিশেষভাবে ব্রাউজার ক্লায়েন্টদের উপর ফোকাস করে, নিম্ন-স্তরের WASM মডিউলটি নন-ওয়েব WASM পরিবেশে "কাজ করা উচিত"।
  • পুরানো বা কুলুঙ্গি প্ল্যাটফর্মের সাথে সামঞ্জস্য। WASM একটি আধুনিক ওয়েবের জন্য ডিজাইন করা হয়েছে এবং আধুনিক প্ল্যাটফর্মের প্রয়োজন। একইভাবে, অবহেলিত sqlite3 লাইব্রেরি বিকল্পগুলি সম্পূর্ণরূপে WASM ইন্টারফেস থেকে সরানো হবে।

WebAssembly সমর্থনের জন্য কোডটি প্রকল্পের প্রধান সংগ্রহস্থলে যোগ করা হয়েছে। WebSQL API-এর বিপরীতে, যা SQLite-এর উপর ভিত্তি করে, WASM SQLite ব্রাউজার থেকে সম্পূর্ণ বিচ্ছিন্ন এবং এর নিরাপত্তাকে প্রভাবিত করে না (Google Chrome-এ WebSQL-এর জন্য সমর্থন বন্ধ করার সিদ্ধান্ত নিয়েছে SQLite-এ বেশ কিছু দুর্বলতার পরে যা WebSQL-এর মাধ্যমে নেভিগেটরকে আক্রমণ করার জন্য ব্যবহার করা যেতে পারে। )

অবশেষে আপনি যদি এটি সম্পর্কে আরও জানতে আগ্রহী, আপনি বিশদ পরীক্ষা করতে পারেন নীচের লিঙ্কে।


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়ী: AB ইন্টারনেট নেটওয়ার্ক 2008 SL
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।