Postgres-wasm ialah projek di mana PostgreSQL telah dialihkan ke WebAssembly
Baru-baru ini, akses percuma kepada postgres-wasm telah diumumkan . Ini ialah pelayan PostgreSQL yang berjalan dalam pelayar dan menawarkan set lengkap ciri, termasuk kegigihan keadaan pelayar, pemulihan daripada pg_dump dan replikasi logik daripada pangkalan data jauh.
Postgres-wasm ialah projek sumber terbuka yang telah memindahkan PostgreSQL ke WebAssembly . Penyelesaian ini dibangunkan melalui kerjasama antara Supabase, penyedia pangkalan data awan dan Snaplet, sebuah syarikat yang pakar dalam pengaturcaraan pangkalan data.
"Hari ini kami melancarkan postgres-wasm dengan rakan kami di Snaplet," kata Jurutera Supabase Mark Burggraf
Bagi mereka yang tidak biasa dengan Postgres, ia merupakan salah satu sistem pengurusan pangkalan data sumber terbuka yang paling canggih . Ia kaya dengan ciri, dengan jenis data yang mantap, pengindeksan yang berkuasa dan pelbagai fungsi terbina dalam yang boleh digunakan untuk memudahkan susunan data dan membolehkan pembangun memberi tumpuan kepada pembinaan aplikasi mereka. Postgres bukan sekadar pangkalan data hubungan; ia telah menjadi platform data yang dipercayai.
Mengenai Postgres-wasm
Supabase bukanlah yang pertama menjalankan Postgres dalam pelayar; tajuk itu milik pasukan Crunchy Data, yang berkongsi versi mereka di HN sebulan yang lalu. Dalam hasrat mereka untuk membangunkan versi sumber terbuka versi proprietari Crunchy Data, Supabase telah bekerjasama dengan Snaplet untuk membina Postgres-wasm.
Terima kasih kepada Postgres-wasm, PostgreSQL boleh dijalankan secara langsung melalui pelayar web. Ini dicapai menggunakan pengedaran Linux Buildroot, yang dicirikan oleh saiznya yang sangat kecil, dan emulator v86 yang membolehkan replikasi operasi terminal x86.
Sebaliknya , WebAssembly bertujuan untuk membolehkan pembinaan aplikasi berprestasi tinggi pada halaman web, tetapi ia tidak membuat andaian khusus web atau menyediakan fungsi khusus web, jadi ia juga boleh digunakan dalam persekitaran lain. Ia merupakan standard terbuka yang bertujuan untuk menyokong sebarang bahasa pada mana-mana sistem pengendalian, dan dalam praktiknya, semua bahasa yang paling popular sudah mempunyai sekurang-kurangnya beberapa tahap sokongan. Supabase menggunakan v86 untuk menjalankan VMnya dalam pelayar.
Menjalankan Postgres dalam pelayar web memang bagus , tetapi menyambungkannya dengan PgAdmin adalah lebih baik. Malangnya, pelayar web menyekat akses kepada rangkaian TCP VM. Untuk mengelakkan perkara ini, Supabase menghalakan trafik melalui WebSockets. Ia menggunakan fork WebSockProxy yang membolehkan emulator berkomunikasi dengan internet dengan menukar data yang dihantar melalui port WebSocket kepada paket TCP. Fork WebSockProxy menambah keupayaan untuk menyalurkan pelayan Postgres.
Antara ciri-ciri utama projek ini adalah seperti berikut:
- Postgres 14.5, psql, pg_dump, dsb.
- Simpan dan pulihkan keadaan ke/daripada fail.
- Simpan dan pulihkan keadaan Postgres ke/dari storan penyemak imbas (IndexedDB).
- But cepat daripada fail status atau tetapan semula emulator penuh.
- Pilihan konfigurasi memori daripada 128 MB hingga 1024 MB.
- Tetapkan saiz fon untuk terminal.
- Muat naik fail ke emulator (termasuk pembuangan CSV dan pangkalan data).
- Muat turun fail emulator.
- Sambungan rangkaian keluar dari emulator ke Internet.
- Terowong rangkaian masuk ke port postgres 5432 di dalam emulator.
Secara umum, keseluruhan projek terkandung dalam satu petikan bersaiz 12 MB untuk menjalankan pelayan PostgreSQL.
Seperti yang diakui oleh pembangun Postgres-wasm, prestasi masa jalan tidak begitu tinggi, tetapi dengan sendirinya matlamat untuk menjadikan PostgreSQL 14.5 boleh digunakan daripada pelayar penuh dengan antara muka baris arahan psql telah berjaya dicapai. .
Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut tentang perkara ini , anda boleh mendapatkan butiran lanjut di pautan berikut.