Settings

Theme

PGlite – Postgres in WASM

github.com

116 points by samuba 2 years ago · 18 comments

Reader

nalgeon 2 years ago

Fitting PostgreSQL into a 12MB binary with a simple API is amazing!

I was so excited to try it out it that I just released an in-browser PostgreSQL playground on top of PGlite.

It's also open source and easy to integrate:

https://codapi.org/postgres-pglite

tyrauber 2 years ago

This is awesome. Are extensions like PostGIS supported? I wish react-native natively supported WASM. It would be cool to run this client-side instead of sqlite.

philippemnoel 2 years ago

This is super cool. Postgres is slowly overlapping on every part of the data stack, even SQLite isn't safe!

dang 2 years ago

Related (but different):

Postgres WASM - https://news.ycombinator.com/item?id=33067962 - Oct 2022 (185 comments)

ejb999 2 years ago

Interesting that it could be done at all - but having a hard time coming up with any real world use cases for this. Are there any?

  • tjelen 2 years ago

    Code testing is a big one for me. I'm currently using in-memory sqlite for tests and I'm often running into differences between sqlite and postgres (default values, JSON handling, etc). This could allow me to use the real thing without running a full Docker instance.

  • amcaskill 2 years ago

    I think performance and cost are the big motivators here.

    I work on a web framework for building data apps like reports and dashboards, and we use duckDB’s WASM runtime for interactions (e.g when a user changes a date range filter). It’s really fast, and you don’t spend snowflake credits.

  • iansinnott 2 years ago

    No one using postgres in the cloud is going to use this as an alternative, but there are at least two use cases where this could be very useful:

    - You want your app to be local first (snappy, great offline support, etc) but sync data to a server. This is the ElectricSQL use case.

    - You want a serious data store in-browser. SQLite via wasm already fits this use case, but it's nice to have options.

  • throwaway92374 2 years ago

    It can persist data to indexedDB, so web applications can use it if they want a more flexible alternative

andrenotgiant 2 years ago

How is this different than the one done by CrunchyData here https://www.crunchydata.com/blog/crazy-idea-to-postgres-in-t...

  • thruflo 2 years ago

    The previous PG WASM projects from Crunchy and Snaplet have run Postgres in a VM and required a large 32MB download.

    This is pure WASM, no VM, 3.7MB download. Plus it has persistent storage.

erichocean 2 years ago

This seems possible due to the separation of Postgres storage and compute work done by Neon?

  • thruflo 2 years ago

    Yup, this is based on work by Neon. Also the Neon model allows you to sync in a database on demand, whilst scaling to zero when you’re not using it.

milesokeefe 2 years ago

This is amazing! I’ve been wanting this to exist for years for use in unit tests. This made my day (and maybe upcoming work week)

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection