Skip to content
High-performance connection pool for PostgreSQL
C CMake
Branch: master
Clone or download
Latest commit 18106e2 Feb 11, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Issue templates Feb 11, 2020
cmake [#32] man pages Dec 19, 2019
doc [#43] Log connections Feb 4, 2020
src [#48] Incorrect encoding of password Feb 10, 2020
.gitignore Guard against gh-pages Sep 18, 2019
AUTHORS Initial commit Aug 28, 2019
CMakeLists.txt Next is 0.5.0 Jan 7, 2020
LICENSE Update copyright year Jan 2, 2020 Misc updates Feb 3, 2020
pgagroal.spec Next is 0.5.0 Jan 7, 2020


pgagroal is a high-performance protocol-native connection pool for PostgreSQL.

Pronounced: p-g-a-gro-al, named after Agroal in Portugal.


  • High performance
  • Connection pool
  • Limit connections for users and databases
  • Prefill support
  • Remove idle connections
  • Perform connection validation
  • Graceful / fast shutdown
  • Daemon mode
  • User vault

See Getting Started on how to get started with pgagroal.

See Configuration on how to configure pgagroal.

See Performance for a performance run.


pgagroal makes use of

  • Process model
  • Shared memory model across processes
  • libev for fast network interactions
  • Atomic operations are used to keep track of state
  • The PostgreSQL native protocol v3 for its communication

See Architecture for the architecture of pgagroal.

Tested platforms

Compiling the source

pgagroal requires

dnf install gcc cmake make libev libev-devel openssl openssl-devel python3-docutils

Alternative clang 8+ can be used.

Release build

The following commands will install pgagroal in the /usr/local hierarchy and run the default configuration.

git clone
cd pgagroal
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
sudo make install
/usr/local/bin/pgagroal -c /usr/local/etc/pgagroal/pgagroal.conf -a /usr/local/etc/pgagroal/pgagroal_hba.conf

See RPM for how to build a RPM of pgagroal.

Debug build

The following commands will create a DEBUG version of pgagroal.

git clone
cd pgagroal
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
cd src
cp ../../doc/etc/*.conf .
./pgagroal -c pgagroal.conf -a pgagroal_hba.conf

Remember to set the log_level configuration option to debug5.


Contributions to pgagroal are managed on

Contributions are most welcome !

Consider giving the project a star on GitHub if you find it useful.



You can’t perform that action at this time.