postgres-wasm, il server PostgreSQL in esecuzione in un browser con WebAssembly

postgres-wasm

Postgres-wasm è un progetto in cui PostgreSQL è stato portato su WebAssembly

Di recente è stato annunciato l'accesso gratuito a postgres-wasm . Si tratta di un server PostgreSQL che funziona in un browser e offre una serie completa di funzionalità, tra cui la persistenza dello stato del browser, il ripristino da pg_dump e la replica logica da un database remoto.

Postgres-wasm è un progetto open-source che ha portato PostgreSQL su WebAssembly . Questa soluzione è stata sviluppata grazie alla collaborazione tra Supabase, un fornitore di database cloud, e Snaplet, un'azienda specializzata nella programmazione di database.

"Oggi lanciamo postgres-wasm con i nostri amici di Snaplet", ha affermato l'ingegnere di Supabase Mark Burggraf

Per chi non lo conoscesse , PostgreSQL è uno dei sistemi di gestione di database open source più avanzati . È ricco di funzionalità, con tipi di dati robusti, un potente sistema di indicizzazione e un'ampia gamma di funzioni integrate che possono essere utilizzate per semplificare la gestione dei dati e consentire agli sviluppatori di concentrarsi sulla creazione della propria applicazione. PostgreSQL è molto più di un semplice database relazionale; è diventato la vostra piattaforma dati di fiducia.

A proposito di Postgres-wasm

Supabase non è la prima azienda ad aver reso PostgreSQL utilizzabile in un browser; questo primato spetta al team di Crunchy Data, che ha condiviso la propria versione su Hacker News un mese fa. Con l'obiettivo di sviluppare una versione open source della versione proprietaria di Crunchy Data, Supabase ha collaborato con Snaplet per creare Postgres-wasm.

Grazie a Postgres-wasm, PostgreSQL può essere eseguito direttamente tramite un browser web. Ciò è stato possibile grazie alla distribuzione Linux Buildroot, caratterizzata da dimensioni estremamente ridotte, e all'emulatore v86 che permette di replicare il funzionamento di un terminale x86.

WebAssembly, d'altro canto , è pensato per consentire la creazione di applicazioni ad alte prestazioni su pagine web, ma non si basa su presupposti specifici del web né fornisce funzionalità specifiche del web, quindi può essere utilizzato anche in altri ambienti. Si tratta di uno standard aperto che mira a supportare qualsiasi linguaggio su qualsiasi sistema operativo e, in pratica, tutti i linguaggi più diffusi godono già di almeno un certo livello di supporto. Supabase utilizza v86 per eseguire la sua macchina virtuale all'interno del browser.

Eseguire PostgreSQL in un browser è fantastico , ma connettersi ad esso tramite PgAdmin è ancora meglio. Sfortunatamente, i browser bloccano l'accesso alla rete TCP della macchina virtuale. Per ovviare a questo problema, Supabase instrada il traffico tramite WebSocket. Utilizzano una versione modificata di WebSockProxy che consente all'emulatore di comunicare con Internet convertendo i dati inviati tramite una porta WebSocket in pacchetti TCP. La versione modificata di WebSockProxy aggiunge la possibilità di creare un tunnel per il server PostgreSQL.

Tra le caratteristiche principali del progetto si annoverano le seguenti:

  • Postgres 14.5, psql, pg_dump, ecc.
  • Salva e ripristina lo stato in/da un file.
  • Salva e ripristina lo stato di Postgres da/verso l'archiviazione del browser (IndexedDB).
  • Avvio rapido da un file di stato o ripristino completo dell'emulatore.
  • Opzioni di configurazione della memoria da 128 MB a 1024 MB.
  • Imposta la dimensione del carattere per il terminale.
  • Carica i file sull'emulatore (inclusi CSV e dump del database).
  • Scarica i file dell'emulatore.
  • Connettività di rete in uscita dall'emulatore a Internet.
  • Tunnel di rete in entrata alla porta postgres 5432 all'interno dell'emulatore.

In generale, l'intero progetto è contenuto in un unico snapshot di dimensione 12 MB con cui eseguire un server PostgreSQL.

Come ammettono gli sviluppatori di Postgres-wasm, le prestazioni di runtime non sono molto elevate, ma di per sé l'obiettivo di rendere PostgreSQL 14.5 utilizzabile da un browser completo con un'interfaccia a riga di comando psql è stato raggiunto con successo.

Infine, se siete interessati ad approfondire l'argomento , potete trovare maggiori dettagli al seguente link.


Aggiungi come fonte preferita in Google