On this page
Overview
HikariCP is a production-ready JDBC connection pool focused on low overhead and a small library footprint. Pool behavior is controlled through a compact set of settings such as maximumPoolSize, connectionTimeout, keepaliveTime, and maxLifetime.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Minimize overhead around JDBC connection acquisition
The pool reuses JDBC connections behind a DataSource interface so applications can acquire and close connections without opening a physical connection each time.
Sources: [1]
Control timeouts, keepalive, lifetime, and pool size explicitly
Settings such as connectionTimeout, keepaliveTime, maxLifetime, and maximumPoolSize let teams tune behavior around database and network constraints.
Sources: [1]
Best fit
Fits Kotlin/JVM backends that use JDBC
Although implemented in Java, it integrates directly with JVM DataSource and JDBC stacks and is straightforward to use from Kotlin services.
Sources: [1]
Before adoption
Oversized pools can reduce database performance
The README warns that too many database connections can have a clear negative performance impact and recommends deliberate pool sizing rather than simply increasing connection counts.
Sources: [1]
Align TCP keepalive and maxLifetime with database and network limits
The README marks TCP keepalive as important for avoiding a rare zero-pool recovery condition and strongly recommends setting maxLifetime slightly below database or infrastructure connection limits. The current README lists 7.1.0 for the Java 11+ artifact.
Official sources
- [1]HikariCP README(2026-10-06)
- [2]HikariCP dev pom.xml(2026-10-06)
Supplemental curator note
It fits Kotlin/JVM backends that need a simple, fast JDBC pool. Avoid oversized pools and design maxLifetime plus TCP keepalive around database and network limits.
Try it in 3 steps
- 1
Get the source
git clone --depth 1 https://github.com/brettwooldridge/HikariCP.git - 2
Enter the repository
cd HikariCP - 3
Check the official steps
Continue with the commands in the README Installation, Quick Start, or Getting Started section.
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
Growth
Growth trends · Last 30 days
21,232 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 30
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- java
- connection-pool
- jdbc
- high-performance
- Stars
- 21,232
- Forks
- 3,017
- Watchers
- 696
- Open issues
- 514
- Contributors
- 148
- Owner type
- User
- Primary language
- Java
- License
- Apache-2.0
- Repository last updated
- Jun 14, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Ktorm2,345 Stars
2 shared tag(s) · 2 shared category(s)
use strongly typed SQL and sequence-style entity APIs on pure JDBC
Kotlin - mysql22,274 Stars
2 shared tag(s) · 2 shared category(s)
connect Ruby to MySQL or MariaDB and handle SQL queries, prepared statements, and streaming results
Ruby - Kotlin JDSL825 Stars
2 shared tag(s) · 2 shared category(s)
build JPA queries from ordinary Kotlin classes without generated metamodels
Kotlin - Komapper344 Stars
2 shared tag(s) · 2 shared category(s)
unify JDBC and R2DBC with a Kotlin DSL and compile-time metamodels
Kotlin - Elasticsearch78,194 Stars
2 shared tag(s) · 1 shared category(s) · Same language
distributed full-text/vector search for analytics, observability, and RAG
Java - OpenSearch13,811 Stars
2 shared tag(s) · 1 shared category(s) · Same language
Support distributed full-text, analytics, observability, and vector search
Java
Report incorrect information
Tell us if any listing information is incorrect or outdated.