postgres-wasm, máy chủ PostgreSQL chạy trong trình duyệt với WebAssembly

postgres-wasm

Postgres-wasm là một dự án trong đó PostgreSQL đã được chuyển sang WebAssembly

Gần đây nó đã được biết đến thông qua một thông báo trên truy cập miễn phí vào postgres-wasm, là một máy chủ PostgreSQL chạy trong trình duyệt và cung cấp một tập hợp đầy đủ các tính năng, bao gồm trạng thái ổn định trong trình duyệt, khôi phục từ pg_dump và sao chép hợp lý từ cơ sở dữ liệu từ xa.

postgres-wasm en một dự án được phát hành theo giấy phép Nguồn mở nhờ đó PostgreSQL đã được chuyển sang WebAssembly. Đây là giải pháp được phát triển nhờ sự hợp tác giữa Supabase, một nhà cung cấp cơ sở dữ liệu đám mây và Snaplet, một công ty chuyên về lập trình cơ sở dữ liệu.

“Hôm nay chúng tôi sẽ ra mắt postgres-wasm với bạn bè của chúng tôi tại Snaplet,” Kỹ sư Supabase Mark Burggraf cho biết

Dành cho những ai chưa biết postgres, họ nên biết rằng là một trong những hệ quản trị cơ sở dữ liệu mã nguồn mở tiên tiến nhất. Nó rất giàu tính năng, với các loại dữ liệu mạnh mẽ, lập chỉ mục mạnh mẽ và một loạt các chức năng tích hợp có thể được sử dụng để đơn giản hóa ngăn xếp dữ liệu và cho phép các nhà phát triển tập trung vào việc xây dựng ứng dụng của họ. Postgres không chỉ là một cơ sở dữ liệu quan hệ, nó đã trở thành nền tảng dữ liệu đáng tin cậy của bạn.

Về Postgres-wasm

Supabase không phải là người đầu tiên làm cho Postgres hoạt động trong trình duyệt; danh hiệu đó thuộc về đội tại Crunchy Data, những người đã chia sẻ việc họ thi đấu tại HN một tháng trước. Với mong muốn phát triển một phiên bản mã nguồn mở của phiên bản độc quyền của Crunchy Data, Supabase đã hợp tác với Snaplet để xây dựng Postgres-wasm.

Nhờ có Postgres-wasm, PostgreSQL có thể được chạy trực tiếp thông qua trình duyệt Để duyệt Web, bản phân phối Buildroot Linux đã được sử dụng, đặc trưng bởi kích thước cực kỳ giảm và trình giả lập v86 cho phép sao chép hoạt động của thiết bị đầu cuối x86.

Về phía WebAssembly, điều này nhằm cho phép các ứng dụng hiệu suất cao được xây dựng trên các trang web, “Nhưng nó không đưa ra các giả định dành riêng cho web hoặc cung cấp chức năng dành riêng cho web, vì vậy nó cũng có thể được sử dụng trong các môi trường khác. Nó là một tiêu chuẩn mở nhằm mục đích hỗ trợ bất kỳ ngôn ngữ nào trên bất kỳ hệ điều hành nào và trên thực tế, tất cả các ngôn ngữ phổ biến nhất đã có ít nhất một mức hỗ trợ nào đó. Supabase sử dụng v86 để chạy máy ảo của nó bên trong trình duyệt.

Chạy Postgres trên trình duyệt thật tuyệt vời, nhưng kết nối với nó với PgAdmin thậm chí còn tốt hơn. Thật không may, các trình duyệt chặn quyền truy cập vào mạng TCP của máy ảo. Để phá vỡ điều này, Siêu dữ liệu định tuyến lưu lượng truy cập thông qua websockets. Họ sử dụng một nhánh của Websockproxy cho phép trình giả lập giao tiếp với Internet bằng cách chuyển đổi dữ liệu được gửi qua cổng websocket thành các gói TCP. Ngã ba Websockproxy thêm khả năng tạo đường hầm cho máy chủ Postgres.

Tính năng bên trong nổi bật so với dự án, những điều sau được đề cập:

  • Postgres 14.5, psql, pg_dump, v.v.
  • Lưu và khôi phục trạng thái vào / từ một tệp.
  • Lưu và khôi phục trạng thái Postgres vào / từ bộ nhớ của trình duyệt (IndexedDB).
  • Khởi động nhanh từ tệp trạng thái hoặc đặt lại trình mô phỏng đầy đủ.
  • Tùy chọn cấu hình bộ nhớ từ 128 MB đến 1024 MB.
  • Đặt kích thước phông chữ cho thiết bị đầu cuối.
  • Tải tệp lên trình giả lập (bao gồm CSV và kết xuất cơ sở dữ liệu).
  • Tải xuống tệp giả lập.
  • Kết nối mạng đi từ trình giả lập với Internet.
  • Đường hầm mạng đến đến cổng postgres 5432 bên trong trình giả lập.

Nói chung, toàn bộ dự án được chứa trong một ảnh chụp nhanh duy nhất có kích thước 12 MB để chạy máy chủ PostgreSQL.

Như các nhà phát triển Postgres-wasm thừa nhận, hiệu suất thời gian chạy không cao lắm, nhưng bản thân mục tiêu làm cho PostgreSQL 14.5 có thể sử dụng được từ một trình duyệt đầy đủ với giao diện dòng lệnh psql đã đạt được thành công.

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết trong liên kết theo dõi.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.