pglite
pg-mem
pglite | pg-mem | |
---|---|---|
9 | 14 | |
4,588 | 1,842 | |
14.6% | - | |
8.4 | 6.6 | |
5 days ago | about 1 month ago | |
TypeScript | TypeScript | |
Apache License 2.0 | MIT License |
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
pg-mem
- Setting up PostgreSQL for running integration tests
-
Show HN: I open-sourced the in-memory PostgreSQL I built at work for E2E tests
I've used pgmem https://github.com/oguimbal/pg-mem for the last couple of years for the same thing.
-
Ask HN: How do you test SQL?
I was wondering the other day how to classify tests that use a test double like pg-mem, which isn't a mock but isn't the Dockerized test DB either :
https://github.com/oguimbal/pg-mem
-
How to test nestjs modules?
In my case, I use TypeORM with PostgreSQL, and there's pg-mem to run an instance in memory, it supports most of the common functionality of PostgreSQL but you will need to do some adjustment to your code to be within the limits.
-
Working with offline data
Postgres in the browser is possible through pg-mem: "pg-mem is an experimental in-memory emulation of a postgres database" but it also suffers from no persistence. If you can persist to a file somewhere then read it in on startup (and if your local data isn't huge) this might work.
- Pg-mem: An in-memory re-implementation of PostgreSQL in JavaScript
-
Haskell as a first timer - Am I missing something ? Or is something broken ?
Dont get me wrong: I am trying to contribute to opensource as well, so I get that supporting small projects can be demanding. There's nothing wrong in not spending your weekends on OS. But not asking for help, nor specifying that a project is unmaintained, nor even answering issues & pull requests for years feels just wrong.
-
Ask HN: What Are You Working On?
A pure Javascript in memory emulation of Posgres, to help writing better node tests https://github.com/oguimbal/pg-mem
-
pg-mem, an in memory postgres DB instance for your unit tests, is now bound to multiple libraries (Knex, Typeorm, Slonik, pg, pg-promise) ... suggestions for the next one ?
Okay, I had a bit of spare time,I've implemented that, and it is now available with [email protected]
-
Zero delay development & unit testing iterations
To get a glimpse of what I'm talking about, you can clone this repo and follow "Development" instructions (by the way this is a small OS lib I maintain, I wrote about it here)
What are some alternatives?
dockertest - Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work.
NeDB - The JavaScript Database, for Node.js, nw.js, electron and the browser
otj-pg-embedded - Java embedded PostgreSQL component for testing
Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
services-flake - NixOS-like services for Nix flakes
Lowdb - Simple and fast JSON database
gradle-docker-compose-plugin - Simplifies usage of Docker Compose for integration testing in Gradle environment.
typescript-clean-architecture - It is my attempt to create Clean Architecture based application in TypeScript.
maplibre-gl-js - MapLibre GL JS - Interactive vector tile maps in WebGL2
database-js - Common Database Interface for Node
hardhat-gas-reporter - Gas Usage Analytics for Hardhat
@databases - TypeScript clients for databases that prevent SQL Injection