{"id":13508412,"url":"https://github.com/pgbouncer/pgbouncer","last_synced_at":"2025-05-13T21:05:59.467Z","repository":{"id":38391780,"uuid":"646423","full_name":"pgbouncer/pgbouncer","owner":"pgbouncer","description":"lightweight connection pooler for PostgreSQL","archived":false,"fork":false,"pushed_at":"2025-04-18T07:29:04.000Z","size":3550,"stargazers_count":3251,"open_issues_count":209,"forks_count":490,"subscribers_count":54,"default_branch":"master","last_synced_at":"2025-04-28T12:11:59.501Z","etag":null,"topics":["postgresql"],"latest_commit_sha":null,"homepage":"https://www.pgbouncer.org/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pgbouncer.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2010-05-04T10:39:40.000Z","updated_at":"2025-04-28T05:26:00.000Z","dependencies_parsed_at":"2023-10-12T00:19:03.537Z","dependency_job_id":"8708a700-5ee4-4ce2-bd01-a49a9c44edbd","html_url":"https://github.com/pgbouncer/pgbouncer","commit_stats":null,"previous_names":[],"tags_count":72,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgbouncer%2Fpgbouncer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgbouncer%2Fpgbouncer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgbouncer%2Fpgbouncer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgbouncer%2Fpgbouncer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgbouncer","download_url":"https://codeload.github.com/pgbouncer/pgbouncer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251311332,"owners_count":21569009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["postgresql"],"created_at":"2024-08-01T02:00:52.693Z","updated_at":"2025-04-28T12:12:07.322Z","avatar_url":"https://github.com/pgbouncer.png","language":"C","funding_links":[],"categories":["C","Databases","postgresql"],"sub_categories":[],"readme":"PgBouncer\n=========\n\nLightweight connection pooler for PostgreSQL.\n\nHomepage: \u003chttps://www.pgbouncer.org/\u003e\n\nSources, bug tracking: \u003chttps://github.com/pgbouncer/pgbouncer\u003e\n\nBuilding\n---------\n\nPgBouncer depends on few things to get compiled:\n\n* [GNU Make] 3.81+\n* [Libevent] 2.0+\n* [pkg-config]\n* [OpenSSL] 1.0.1+ for TLS support\n* (optional) [c-ares] as alternative to Libevent's evdns\n* (optional) PAM libraries\n* (optional) LDAP libraries\n\n[GNU Make]: https://www.gnu.org/software/make/\n[Libevent]: http://libevent.org/\n[pkg-config]: https://www.freedesktop.org/wiki/Software/pkg-config/\n[OpenSSL]: https://www.openssl.org/\n[c-ares]: http://c-ares.haxx.se/\n\nWhen dependencies are installed just run:\n\n    $ ./configure --prefix=/usr/local\n    $ make\n    $ make install\n\nIf you are building from Git, or are building for Windows, please see\nseparate build instructions below.\n\nDNS lookup support\n------------------\n\nPgBouncer does host name lookups at connect time instead of just once\nat configuration load time.  This requires an asynchronous DNS\nimplementation.  The following table shows supported backends and\ntheir probing order:\n\n| backend                    | parallel | EDNS0 (1) | /etc/hosts | SOA lookup (2) | note                                  |\n|----------------------------|----------|-----------|------------|----------------|---------------------------------------|\n| c-ares                     | yes      | yes       | yes        | yes            | IPv6+CNAME buggy in \u003c=1.10            |\n| evdns, libevent 2.x        | yes      | no        | yes        | no             | does not check /etc/hosts updates     |\n| getaddrinfo_a, glibc 2.9+  | yes      | yes (3)   | yes        | no             | N/A on non-glibc                      |\n| getaddrinfo, libc          | no       | yes (3)   | yes        | no             | requires pthreads                     |\n\n1. EDNS0 is required to have more than 8 addresses behind one host name.\n2. SOA lookup is needed to re-check host names on zone serial change.\n3. To enable EDNS0, add `options edns0` to `/etc/resolv.conf`.\n\nc-ares is the most fully-featured implementation and is recommended\nfor most uses and binary packaging (if a sufficiently new version is\navailable).  Libevent's built-in evdns is also suitable for many uses,\nwith the listed restrictions.  The other backends are mostly legacy\noptions at this point and don't receive much testing anymore.\n\nBy default, c-ares is used if it can be found.  Its use can be forced\nwith `configure --with-cares` or disabled with `--without-cares`.  If\nc-ares is not used (not found or disabled), then Libevent is used.  Specify\n`--disable-evdns` to disable the use of Libevent's evdns and fall back to a\nlibc-based implementation.\n\nPAM authentication\n------------------\n\nTo enable PAM authentication, `./configure` has a flag `--with-pam`\n(default value is no).  When compiled with PAM support, a new global\nauthentication type `pam` is available to validate users through PAM.\n\nLDAP authentication\n------------------\n\nTo enable LDAP authentication, `./configure` has a flag `--with-ldap`\n(default value is no).  When compiled with LDAP support, a new global\nauthentication type `ldap` is available to validate users through LDAP.\n\nsystemd integration\n-------------------\n\nTo enable systemd integration, use the `configure` option\n`--with-systemd`.  This allows using `Type=notify` (or `Type=notify-reload` if\nyou are using systemd 253 or later) as well as socket activation.  See\n`etc/pgbouncer.service` and `etc/pgbouncer.socket` for examples.\n\nBuilding from Git\n-----------------\n\nBuilding PgBouncer from Git requires that you fetch the libusual and\nuthash submodules and generate the header and configuration files before\nyou can run `configure`:\n\n\t$ git clone https://github.com/pgbouncer/pgbouncer.git\n\t$ cd pgbouncer\n\t$ git submodule init\n\t$ git submodule update\n\t$ ./autogen.sh\n\t$ ./configure\n\t$ make\n\t$ make install\n\nAll files will be installed under `/usr/local` by default. You can\nsupply one or more command-line options to `configure`. Run\n`./configure --help` to list the available options and the environment\nvariables that customizes the configuration.\n\nAdditional packages required: autoconf, automake, libtool, pandoc\n\nTesting\n-------\n\nSee the [`README.md` file in the test directory][1] on how to run the tests.\n\n[1]: https://github.com/pgbouncer/pgbouncer/blob/master/test/README.md\n\nBuilding on Windows\n-------------------\n\nThe only supported build environment on Windows is MinGW.  Cygwin and\nVisual $ANYTHING are not supported.\n\nTo build on MinGW, do the usual:\n\n\t$ ./configure\n\t$ make\n\nIf cross-compiling from Unix:\n\n\t$ ./configure --host=i586-mingw32msvc\n\nRunning on Windows\n------------------\n\nRunning from the command line goes as usual, except that the `-d` (daemonize),\n`-R` (reboot), and `-u` (switch user) switches will not work.\n\nTo run PgBouncer as a Windows service, you need to configure the\n`service_name` parameter to set a name for the service.  Then:\n\n\t$ pgbouncer -regservice config.ini\n\nTo uninstall the service:\n\n\t$ pgbouncer -unregservice config.ini\n\nTo use the Windows event log, set `syslog = 1` in the configuration file.\nBut before that, you need to register `pgbevent.dll`:\n\n\t$ regsvr32 pgbevent.dll\n\nTo unregister it, do:\n\n\t$ regsvr32 /u pgbevent.dll\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgbouncer%2Fpgbouncer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgbouncer%2Fpgbouncer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgbouncer%2Fpgbouncer/lists"}