macOS
brew install h2local Homebrew formula metadata
brew
Java SQL database. Version 2.4.240 via Homebrew; verified from local package data.
install
brew install h2local Homebrew formula metadata
nix profile install nixpkgs#h2nixpkgs package indexes · pkgs/by-name/h2/h2/package.nix · source: api.github.com
overview
Java SQL database
history
H2 is a Java SQL database engine designed for embedded and server use through standard SQL and JDBC. Its package history matters because it became one of the default lightweight relational databases for Java development, tests, demos, local tools, and applications that need an embeddable database without running a separate server.
The official H2 history says development started in May 2004 and the database was first published on December 14, 2005. The original author, Thomas Mueller, was also the original developer of Hypersonic SQL; after he joined PointBase and discontinued Hypersonic SQL work, the HSQLDB Group continued that codebase. H2 means Hypersonic 2, but the official history emphasizes that H2 does not share code with Hypersonic SQL or HSQLDB and was built from scratch.
The project chose Java for portability, simpler integration with Java applications, Unicode support, security advantages over native code, and faster development of algorithms rather than platform-specific memory-management work. The H2 feature documentation presents the result as a fast open source database engine with JDBC API support, embedded and server modes, disk or in-memory databases, transaction support, multi-version concurrency, a browser console, encryption, full-text search, and a small jar footprint.
H2's repository and documentation structure reflect its dual role as library and tool. The README points Java users to Maven coordinates, tutorial pages, SQL command documentation, functions, data types, issue tracking, mailing-list/forum support, and Stack Overflow usage for framework integration questions.
H2 adoption came from Java developers who needed a relational database that could run inside the same JVM for tests, demos, desktop apps, command-line tools, and server applications. The official features page highlights embedded mode as the fastest and easiest connection mode, while also documenting server and mixed modes for multiple clients.
The README and GitHub repository show a broad open-source footprint: thousands of stars, many forks, thousands of commits, Maven dependency instructions, and documentation aimed at both SQL users and Java integrators. The supplied package facts list Homebrew and Nix packages, while the more important adoption path for Java is the Maven coordinate `com.h2database:h2` shown by the project README.
Common H2 usage includes embedding the database in Java applications through JDBC, running in-memory databases for tests, using file-backed local databases, starting server mode for remote JDBC or ODBC-over-TCP/IP connections, using the browser-based Console, and applying compatibility modes for databases such as DB2, Derby, HSQLDB, MS SQL Server, MySQL, Oracle, and PostgreSQL.
H2 also ships command-line and operational tooling around the database engine. Package managers expose an `h2` executable in addition to the Java jar ecosystem, which is useful for local console workflows, demos, and scripted development setups.
H2 is a package-nerd staple because it collapses a database dependency into a small Java artifact. That makes test suites, examples, development servers, and teaching environments easier to package: no daemon, no external service, no local database bootstrap, and in-memory mode when persistence is unnecessary.
It also has a long tail of compatibility and security implications. Frameworks often include H2 for tests, so packagers and maintainers care about version behavior, SQL compatibility modes, file format changes, console exposure, and transitive dependency updates even when H2 is not the production database.
security posture
broad file, network, media, or database tool signal. formula declares a Homebrew service.
orange risk · medium confidence · infrastructure
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
h2 | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/h2database/h2database
install metadata
| Package key | brew:h2 |
|---|---|
| Version | 2.4.240 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/h2 |
| Homepage | https://www.h2database.com/ |
| Repository | https://github.com/h2database/h2database |
| Upstream docs | https://h2database.github.io/html/commands.html |
| License | MPL-2.0 |
| Source archive | https://github.com/h2database/h2database/releases/download/version-2.4.240/h2-2025-09-22.zip |
| Dependencies | openjdk |
| Bottle | available (on all) |
| Homebrew post-install | not defined |
| Service | declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | h2 |
| Version Scheme | 0 |
| Revision | 0 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
h2
nix profile install nixpkgs#h2source trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.