SQLite thêm hỗ trợ WASM để sử dụng DBMS trong trình duyệt web

Các nhà phát triển SQLite đang phát triển một dự án triển khai khả năng biên dịch thư viện thành mã trung gian WebAssugging, có khả năng chạy trên trình duyệt web và phù hợp để tổ chức công việc với cơ sở dữ liệu từ các ứng dụng web bằng JavaScript. Mã hỗ trợ WebAssugging đã được thêm vào kho dự án chính. Không giống như API WebSQL dựa trên SQLite, WASM SQLite hoàn toàn tách biệt với trình duyệt và không ảnh hưởng đến tính bảo mật của nó (Google đã quyết định ngừng hỗ trợ WebSQL trong Chrome sau khi một số lỗ hổng trong SQLite có thể bị khai thác thông qua WebSQL để tấn công trình duyệt) .

Mục tiêu của dự án là cung cấp một khung JavaScript hoạt động có chức năng giống hệt với API SQLite. Các nhà phát triển web được cung cấp giao diện hướng đối tượng cấp cao để làm việc với dữ liệu theo kiểu sql.js hoặc Node.js, ràng buộc với API C cấp thấp và API dựa trên cơ chế Web Worker, cho phép bạn tạo các trình xử lý không đồng bộ được thực thi trong các luồng riêng biệt. Để che giấu sự phức tạp của việc tổ chức công việc với các luồng trên API dựa trên Web Worker, một phiên bản giao diện chương trình dựa trên cơ chế Promise cũng đang được phát triển.

Dữ liệu mà các ứng dụng web lưu trữ trong phiên bản WASM của SQLite có thể được bản địa hóa trong phiên hiện tại (bị mất sau khi tải lại trang) hoặc được lưu trữ ở phía máy khách (được lưu giữa các phiên). Để lưu trữ vĩnh viễn, các chương trình phụ trợ đã được chuẩn bị để đặt dữ liệu vào hệ thống tệp cục bộ bằng OPFS (Hệ thống tệp gốc-riêng tư, một phần mở rộng cho API truy cập hệ thống tệp, hiện chỉ khả dụng trong các trình duyệt dựa trên WebKit và Chrome) và trong bộ nhớ trình duyệt cục bộ dựa trên trên API window.localStorage và window.sessionStorage. Khi sử dụng localStorage/sessionStorage, dữ liệu được phản ánh trong các kho lưu trữ tương ứng ở định dạng khóa/giá trị và khi sử dụng OPFS, có hai tùy chọn: mô phỏng một FS ảo bằng WASMFS và triển khai sqlite3_vfs riêng biệt, cung cấp lớp VFS SQLite dựa trên trên OPFS.

Để xây dựng SQLite thành dạng xem WASM, trình biên dịch Emscripten được sử dụng (chỉ cần xây dựng phần mở rộng ext/wasm: “./configure —enable-all; make sqlite3.c; cd ext/wasm; make”). Đầu ra là các tệp sqlite3.js và sqlite3.wasm, có thể được đưa vào dự án JavaScript của bạn (ví dụ về HTML và JavaScript).

Nguồn: opennet.ru

Thêm một lời nhận xét