Omnigres makes PostgreSQL a complete application platform. You can deploy a single database instance and it can host your entire application, scaling as needed.
- Running application logic inside or next to the database instance
- Deployment provisioning (Git, Docker, etc.)
- Database instance serves HTTP, WebSocket and other protocols
- In-memory and volatile on-disk caching
- Routine application building blocks (authentication, authorization, payments, etc.)
- Database-modeled application logic via reactive queries
- Automagic remote APIs and form handling
- Live data updates
This is a working-in-progress project at the moment and not ready for any kind of production use. If anything, it's at the prototyping stage.
The fastest way to try Omnigres out is by using its Docker image:
# Build the image
DOCKER_BUILDKIT=1 docker build . -t omnigres
# Prepare the container and its volume
docker volume create omnigres
docker run -d --name omnigres -e POSTGRES_PASSWORD=omnigres -e POSTGRES_USER=omnigres \
-e POSTGRES_DB=omnigres --mount source=omnigres,target=/var/lib/postgresql/data \
-p 5432:5432 omnigres
# Now you can connect to it:
psql -h localhost -p 5432 -U omnigres omnigres
To build and run Omnigres, you would currently need a recent C compiler, OpenSSL and cmake:
mkdir -p build && cd build
cmake ..
make psql_<COMPONENT_NAME> # for example, `psql_omni_containers`
# in the build directory
CTEST_PARALLEL_LEVEL=$(nproc) make -j $(nproc) all test