pglite
otj-pg-embedded
pglite | otj-pg-embedded | |
---|---|---|
6 | 6 | |
4,471 | 669 | |
12.4% | 0.6% | |
8.4 | 6.5 | |
23 days ago | 25 days ago | |
TypeScript | Java | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pglite
-
Show HN: I open-sourced the in-memory PostgreSQL I built at work for E2E tests
Hey HN! For a few months, I've been building pgmock at work for our E2E and unit test suite. It emulates Postgres in WebAssembly and has full feature parity with production databases.
The cool thing about it is that you don't need any external processes or proxies. If your platform can run WASM (Node.js, browser, etc.), it can probably run pgmock. Creating a new database with mock data is as simple as creating a JavaScript object.
It's a bit different from the amazing pglite [1] (which inspired me to open-source pgmock in the first place). While pgmock runs an x86 emulator, pglite compiles a Postgres fork to native WASM directly and is hence much faster and more lightweight. However, it only supports single-user mode and a select few extensions, so you can't connect to it with normal Postgres clients (which is quite crucial for E2E testing).
Theoretically, it could be modified to run any Docker image on WebAssembly platforms. Anything specific you'd like to see?
Happy hacking!
[1] https://github.com/electric-sql/pglite
- Pgmock: In-memory Postgres for unit/E2E tests
-
Soul: A SQLite REST and Realtime Server
I've found postgres via docker to be fine for dev and testing, but there are various epheremal postgres scripts, plus this could be promising for node stuff https://github.com/electric-sql/pglite if it works out. I'd imagine if this does work out we'll see the same kind of builds for other runtimes as well (like python)
-
The Cell Programming Language
> Use SQLite for everything, or Postgres if you outgrow it.
Or both! ElectricSQL syncs front end SQLlite back to server side postgres. And they just rebuilt postgres on pure WASM (https://github.com/electric-sql/pglite). All ties together with a CRDT.
I'm not affiliated, but just think it's just cool to imagine calls to front end sqllite as the be-all-end-all.
- Testcontainers
- PGlite – Postgres in WASM
otj-pg-embedded
-
Testcontainers
Anyone have an opinion of embedded-postgres vs https://github.com/opentable/otj-pg-embedded (of which its a fork) for Clojure use?
-
What's the best approach for creating an embedded Postgresql to be used in production?
Can you elaborate a bit on this part? I'm still unsure why it's unadvised to do this, as I understood from other commenters it's because there is no official support for it correct? Why can't I use opentable for instance? https://github.com/opentable/otj-pg-embedded
-
SQLite Is Dynamically Typed (2020)
It's pretty easy to run embedded postgres on the JVM: https://github.com/opentable/otj-pg-embedded
The defaults create a temporary DB which is useful for dev & tests, but a pair of calls to .setCleanDataDirectory(false) and .setDataDirectory("...") will change that.
If you don't like the default postgres version, you may select one from https://search.maven.org/search?q=io.zonky.test.postgres or include your own postgres binary.
- Experiment: using PostgreSQL as a user process
-
Pg_tmp – Run tests on an isolated, temporary PostgreSQL database
I've been using this embedded PostgreSQL thing for tests:
https://github.com/opentable/otj-pg-embedded
It's very simple to use and works perfectly. The one problem, and it's a significant one, is that it only ships one version of PostgreSQL, and adding another was difficult enough that I didn't.
What are some alternatives?
dockertest - Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work.
testcontainers-go - Testcontainers for Go is a Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done.
services-flake - NixOS-like services for Nix flakes
Testcontainers - Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
gradle-docker-compose-plugin - Simplifies usage of Docker Compose for integration testing in Gradle environment.
postgresql-embedded - Embedded PostgreSQL Server
integresql - IntegreSQL manages isolated PostgreSQL databases for your integration tests.
localstripe - A fake but stateful Stripe server that you can run locally, for testing purposes.
embedded-postgres - Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test
rush - Production-driven prototyping. This starter is setup in a production-friendly way and will setup tests + dev environment exactly like a live project will work. Works the same both on your laptop or Github CI, so you can go from hacking on your laptop to a full gitops environment.
flyway-spawn-demo - CI demo using Flyway and Spawn
pypgdev - Python Postgres Development Tools