Postgres-wasm adalah proyek di mana PostgreSQL telah di-porting ke WebAssembly
Baru-baru ini, akses gratis ke postgres-wasm telah diumumkan . Ini adalah server PostgreSQL yang berjalan di browser dan menawarkan serangkaian fitur lengkap, termasuk persistensi status browser, pemulihan dari pg_dump, dan replikasi logis dari basis data jarak jauh.
Postgres-wasm adalah proyek sumber terbuka yang telah memindahkan PostgreSQL ke WebAssembly . Solusi ini dikembangkan melalui kolaborasi antara Supabase, penyedia basis data cloud, dan Snaplet, perusahaan yang mengkhususkan diri dalam pemrograman basis data.
“Hari ini kami meluncurkan postgres-wasm dengan teman-teman kami di Snaplet,” kata Insinyur Supabase Mark Burggraf
Bagi yang belum familiar dengan Postgres, ini adalah salah satu sistem manajemen basis data sumber terbuka tercanggih . Fiturnya kaya, dengan tipe data yang kuat, pengindeksan yang mumpuni, dan berbagai fungsi bawaan yang dapat digunakan untuk menyederhanakan tumpukan data dan memungkinkan pengembang untuk fokus membangun aplikasi mereka. Postgres lebih dari sekadar basis data relasional; ia telah menjadi platform data tepercaya Anda.
Tentang Postgres-wasm
Supabase bukanlah yang pertama menjalankan Postgres di browser; gelar itu milik tim Crunchy Data, yang membagikan versi mereka di HN sebulan yang lalu. Dalam keinginan mereka untuk mengembangkan versi open-source dari versi proprietary Crunchy Data, Supabase bermitra dengan Snaplet untuk membangun Postgres-wasm.
Berkat Postgres-wasm, PostgreSQL dapat dijalankan langsung melalui peramban web. Hal ini dicapai dengan menggunakan distribusi Linux Buildroot, yang dicirikan oleh ukurannya yang sangat kecil, dan emulator v86 yang memungkinkan replikasi operasi terminal x86.
Di sisi lain , WebAssembly dirancang untuk memungkinkan pembuatan aplikasi berkinerja tinggi pada halaman web, tetapi tidak membuat asumsi khusus web atau menyediakan fungsionalitas khusus web, sehingga dapat juga digunakan di lingkungan lain. Ini adalah standar terbuka yang bertujuan untuk mendukung bahasa apa pun pada sistem operasi apa pun, dan dalam praktiknya, semua bahasa yang paling populer sudah memiliki setidaknya beberapa tingkat dukungan. Supabase menggunakan v86 untuk menjalankan VM-nya di dalam browser.
Menjalankan Postgres di browser memang bagus , tetapi terhubung ke sana dengan PgAdmin bahkan lebih baik. Sayangnya, browser memblokir akses ke jaringan TCP VM. Untuk mengatasi hal ini, Supabase mengarahkan lalu lintas melalui WebSocket. Mereka menggunakan fork WebSockProxy yang memungkinkan emulator untuk berkomunikasi dengan internet dengan mengubah data yang dikirim melalui port WebSocket menjadi paket TCP. Fork WebSockProxy menambahkan kemampuan untuk membuat terowongan (tunnel) ke server Postgres.
Beberapa fitur utama proyek ini meliputi:
- Postgres 14.5, psql, pg_dump, dll.
- Simpan dan pulihkan status ke/dari file.
- Simpan dan pulihkan status Postgres ke/dari penyimpanan browser (IndexedDB).
- Boot cepat dari file status atau reset emulator penuh.
- Opsi konfigurasi memori dari 128 MB hingga 1024 MB.
- Atur ukuran font untuk terminal.
- Unggah file ke emulator (termasuk CSV dan dump database).
- Unduh file emulator.
- Konektivitas jaringan keluar dari emulator ke Internet.
- Terowongan jaringan masuk ke port postgres 5432 di dalam emulator.
Secara umum, seluruh proyek terkandung dalam satu snapshot berukuran 12 MB yang dapat digunakan untuk menjalankan server PostgreSQL.
Seperti yang diakui oleh pengembang Postgres-wasm, kinerja runtime tidak terlalu tinggi, tetapi dengan sendirinya tujuan membuat PostgreSQL 14.5 dapat digunakan dari browser lengkap dengan antarmuka baris perintah psql telah berhasil dicapai. .
Terakhir, jika Anda tertarik untuk mempelajari lebih lanjut tentang hal ini , Anda dapat menemukan detailnya di tautan berikut.