Το Postgres-wasm είναι ένα έργο στο οποίο η PostgreSQL έχει μεταφερθεί στο WebAssembly
Πρόσφατα, ανακοινώθηκε η δωρεάν πρόσβαση στο postgres-wasm . Πρόκειται για έναν διακομιστή PostgreSQL που εκτελείται σε ένα πρόγραμμα περιήγησης και προσφέρει ένα πλήρες σύνολο λειτουργιών, όπως η διατήρηση της κατάστασης του προγράμματος περιήγησης, η επαναφορά από το pg_dump και η λογική αναπαραγωγή από μια απομακρυσμένη βάση δεδομένων.
Το Postgres-wasm είναι ένα έργο ανοιχτού κώδικα που έχει μεταφέρει την PostgreSQL στο WebAssembly . Αυτή η λύση αναπτύχθηκε μέσω συνεργασίας μεταξύ της Supabase, μιας εταιρείας παροχής βάσεων δεδομένων cloud, και της Snaplet, μιας εταιρείας που ειδικεύεται στον προγραμματισμό βάσεων δεδομένων.
"Σήμερα εγκαινιάζουμε το postgres-wasm με τους φίλους μας στο Snaplet", δήλωσε ο μηχανικός της Supabase Mark Burggraf.
Για όσους δεν είναι εξοικειωμένοι με το Postgres, είναι ένα από τα πιο προηγμένα συστήματα διαχείρισης βάσεων δεδομένων ανοιχτού κώδικα . Είναι πλούσιο σε λειτουργίες, με ισχυρούς τύπους δεδομένων, ισχυρή ευρετηρίαση και ένα ευρύ φάσμα ενσωματωμένων λειτουργιών που μπορούν να χρησιμοποιηθούν για την απλοποίηση της στοίβας δεδομένων και την παροχή στους προγραμματιστές τη δυνατότητα να επικεντρωθούν στην ανάπτυξη της εφαρμογής τους. Το Postgres είναι κάτι περισσότερο από μια σχεσιακή βάση δεδομένων. Έχει γίνει η αξιόπιστη πλατφόρμα δεδομένων σας.
Σχετικά με την Postgres-wasm
Το Supabase δεν είναι το πρώτο που εκτελεί το Postgres σε πρόγραμμα περιήγησης. Αυτός ο τίτλος ανήκει στην ομάδα Crunchy Data, η οποία μοιράστηκε την έκδοσή της στο HN πριν από ένα μήνα. Στην επιθυμία της να αναπτύξει μια έκδοση ανοιχτού κώδικα της ιδιόκτητης έκδοσης του Crunchy Data, η Supabase συνεργάστηκε με την Snaplet για την κατασκευή του Postgres-wasm.
Χάρη στο Postgres-wasm, η PostgreSQL μπορεί να εκτελεστεί απευθείας μέσω ενός προγράμματος περιήγησης ιστού. Αυτό επιτεύχθηκε χρησιμοποιώντας την διανομή Linux Buildroot, η οποία χαρακτηρίζεται από το εξαιρετικά μικρό της μέγεθος, και τον εξομοιωτή v86 που επιτρέπει την αναπαραγωγή της λειτουργίας ενός τερματικού x86.
Το WebAssembly, από την άλλη πλευρά , έχει σκοπό να επιτρέψει την κατασκευή εφαρμογών υψηλής απόδοσης σε ιστοσελίδες, αλλά δεν κάνει υποθέσεις ειδικά για τον ιστό ούτε παρέχει λειτουργικότητα ειδικά για τον ιστό, επομένως μπορεί να χρησιμοποιηθεί και σε άλλα περιβάλλοντα. Είναι ένα ανοιχτό πρότυπο που στοχεύει στην υποστήριξη οποιασδήποτε γλώσσας σε οποιοδήποτε λειτουργικό σύστημα και, στην πράξη, όλες οι πιο δημοφιλείς γλώσσες έχουν ήδη τουλάχιστον κάποιο επίπεδο υποστήριξης. Το Supabase χρησιμοποιεί την έκδοση v86 για να εκτελέσει την εικονική μηχανή του μέσα στο πρόγραμμα περιήγησης.
Η εκτέλεση του Postgres σε ένα πρόγραμμα περιήγησης είναι εξαιρετική , αλλά η σύνδεση σε αυτό με το PgAdmin είναι ακόμα καλύτερη. Δυστυχώς, τα προγράμματα περιήγησης εμποδίζουν την πρόσβαση στο δίκτυο TCP της εικονικής μηχανής. Για να παρακάμψει αυτό, το Supabase δρομολογεί την κυκλοφορία μέσω WebSockets. Χρησιμοποιούν ένα fork WebSockProxy που επιτρέπει στον εξομοιωτή να επικοινωνεί με το διαδίκτυο μετατρέποντας δεδομένα που αποστέλλονται μέσω μιας θύρας WebSocket σε πακέτα TCP. Το fork WebSockProxy προσθέτει τη δυνατότητα διοχέτευσης του διακομιστή Postgres.
Μεταξύ των βασικών χαρακτηριστικών του έργου είναι τα εξής:
- Postgres 14.5, psql, pg_dump, κ.λπ.
- Αποθήκευση και επαναφορά της κατάστασης σε/από ένα αρχείο.
- Αποθηκεύστε και επαναφέρετε την κατάσταση Postgres προς/από τον χώρο αποθήκευσης του προγράμματος περιήγησης (IndexedDB).
- Γρήγορη εκκίνηση από αρχείο κατάστασης ή πλήρης επαναφορά εξομοιωτή.
- Επιλογές διαμόρφωσης μνήμης από 128 MB έως 1024 MB.
- Ορίστε το μέγεθος γραμματοσειράς για το τερματικό.
- Μεταφορτώστε αρχεία στον εξομοιωτή (συμπεριλαμβανομένων CSV και ενδείξεων βάσεων δεδομένων).
- Λήψη αρχείων εξομοιωτή.
- Συνδεσιμότητα εξερχόμενου δικτύου από τον εξομοιωτή στο Διαδίκτυο.
- Εισερχόμενη σήραγγα δικτύου στη θύρα postgres 5432 μέσα στον εξομοιωτή.
Γενικά, ολόκληρο το έργο περιέχεται σε ένα στιγμιότυπο μεγέθους 12 MB με το οποίο μπορεί να τρέξει ένας διακομιστής PostgreSQL.
Όπως παραδέχονται οι προγραμματιστές της Postgres-wasm, η απόδοση χρόνου εκτέλεσης δεν είναι πολύ υψηλή, αλλά από μόνος του ο στόχος να γίνει το PostgreSQL 14.5 χρησιμοποιήσιμο από ένα πλήρες πρόγραμμα περιήγησης με διεπαφή γραμμής εντολών psql έχει επιτευχθεί με επιτυχία.
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα σχετικά με αυτό , μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.