{"slug": "h2", "name": "H2", "category": "databases", "category_name": "Databases", "description": "", "recommenders": 4, "commenters": 5, "warners": 0, "score": 3.663, "rising": -1.31, "first": "2026-01-06", "latest": "2026-06-09", "why": "H2 fills this gap nicely, easily handling both in- memory and remote JDBC access", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 1, "compare": 0, "warn": 0}, "spark": [0, 0, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "H2 fills this gap nicely, easily handling both in- memory and remote JDBC access", "kind": "", "icon": true, "domain": "frequal.com", "github_repo": null, "official_url": "https://h2database.com", "pricing": "", "aliases": ["H2", "h2"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 775506066, "item_id": 48469129, "url": "https://news.ycombinator.com/item?id=48469129", "by": "ianm218", "date": "2026-06-09", "stance": "recommend", "quote": "h2 (http 2 impl)", "excerpt": "I have been working on the same problem in other areas. My ultimate goal is to rewrite nginx in Rust passing as much as the upstream tests as possible while leveraging the strongest aspects of Ruts ecosystem - i.e. rustls (modern memory safe OpenSSL), Tokio (async runtime), h2 (http 2 impl) rather than implementing from scratch like the upstream. I started with Lua, then porting over Valkey, and now working on nginx.", "context": "", "use_case": "HTTP/2 in nginx port", "switched_from": "", "story": "Grit: Rewriting Git in Rust with Agents"}, {"id": 749013296, "item_id": 46813331, "url": "https://news.ycombinator.com/item?id=46813331", "by": "TeaVMFan", "date": "2026-01-29", "stance": "recommend", "quote": "H2 fills this gap nicely, easily handling both in- memory and remote JDBC access", "excerpt": "For the Java ecosystem, H2 fills this gap nicely, easily handling both in- memory and remote JDBC access: https://frequal.com/java/TheBestDatabase.html", "context": "", "use_case": "In-memory and remote JDBC", "switched_from": "", "story": "Deep dive into Turso, the \"SQLite rewrite in Rust\""}, {"id": 744203474, "item_id": 46512717, "url": "https://news.ycombinator.com/item?id=46512717", "by": "giancarlostoro", "date": "2026-01-06", "stance": "recommend", "quote": "I prefer to use H2 in some cases over SQLite", "excerpt": "I forgot what Limbo was, Rust rewrite of SQLite, now called Turso. https://github.com/tursodatabase/turso I could see it being useful for pure Rust projects once its completed. I mean in Java / Kotlin land, I prefer to use H2 in some cases over SQLite since its native to the platform and H2 is kind of nice altogether. I could see myself only using this in Rust in place of SQLite if its easy to integrate and use on th", "context": "", "use_case": "embedded Java/Kotlin database", "switched_from": "", "story": "C Is Best"}]}], "caveats": [], "who": [{"by": "Ayaz_Saifi", "context": "CS undergrad (AI/ML), graduating 2026", "url": "https://news.ycombinator.com/item?id=46911265", "date": "2026-02-06"}], "tags": [], "use_cases": ["http/2 in nginx port", "transaction system database", "in-memory and remote jdbc", "embedded java/kotlin database"], "compared": [{"slug": "kubernetes", "name": "Kubernetes", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "prometheus", "name": "Prometheus", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "spring-boot", "name": "Spring Boot", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "terraform", "name": "Terraform", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "turso", "name": "Turso", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "grpc", "name": "gRPC", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "apache-kafka", "name": "Apache Kafka", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "grafana", "name": "Grafana", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46511470", "title": "C Is Best", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48466812", "title": "Grit: Rewriting Git in Rust with Agents", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46857488", "title": "Ask HN: Who is hiring? (February 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46857487", "title": "Ask HN: Who wants to be hired? (February 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46810950", "title": "Deep dive into Turso, the \"SQLite rewrite in Rust\"", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {"recommend": 3}, "2026-02": {"neutral": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {"recommend": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 775506066, "item_id": 48469129, "url": "https://news.ycombinator.com/item?id=48469129", "by": "ianm218", "date": "2026-06-09", "stance": "recommend", "quote": "h2 (http 2 impl)", "excerpt": "I have been working on the same problem in other areas. My ultimate goal is to rewrite nginx in Rust passing as much as the upstream tests as possible while leveraging the strongest aspects of Ruts ecosystem - i.e. rustls (modern memory safe OpenSSL), Tokio (async runtime), h2 (http 2 impl) rather than implementing from scratch like the upstream. I started with Lua, then porting over Valkey, and now working on nginx.", "context": "", "use_case": "HTTP/2 in nginx port", "switched_from": "", "story": "Grit: Rewriting Git in Rust with Agents"}, {"id": 750580242, "item_id": 46911265, "url": "https://news.ycombinator.com/item?id=46911265", "by": "Ayaz_Saifi", "date": "2026-02-06", "stance": "neutral", "quote": "using Spring Boot, Kafka, and H2", "excerpt": "Ayaz Role: Software Engineer / Backend / Full-Stack Location: India (open to remote & relocation) Experience: Java, Spring Boot, Kafka, Microservices, Cloud, ML I\u2019m a Computer Science undergrad (AI/ML specialization, graduating 2026) with hands-on experience building distributed systems and backend services. At JPMorgan Chase (virtual internship), I built a real-time financial transaction system using Spring Boot, Ka", "context": "CS undergrad (AI/ML), graduating 2026", "use_case": "Transaction system database", "switched_from": "", "story": "Ask HN: Who is hiring? (February 2026)"}, {"id": 750553161, "item_id": 46909572, "url": "https://news.ycombinator.com/item?id=46909572", "by": "Ayaz_Saifi", "date": "2026-02-05", "stance": "neutral", "quote": "H2", "excerpt": "Location: India Remote: Yes (actively seeking remote opportunities) Willing to relocate: Yes (for the right opportunity) Technologies: Java, Spring Boot, Kafka, Microservices, Kubernetes, Docker, Python, PyTorch, TensorFlow, OpenCV, React.js, JavaScript, SQL/NoSQL (MongoDB, H2), REST APIs, gRPC, Prometheus/Grafana, Terraform, Git, Tableau R\u00e9sum\u00e9/CV: https://drive.google.com/file/d/1zKHm7niY0Qp_jY614Cz_6AqRA-zeSQAR/vi", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who wants to be hired? (February 2026)"}, {"id": 749013296, "item_id": 46813331, "url": "https://news.ycombinator.com/item?id=46813331", "by": "TeaVMFan", "date": "2026-01-29", "stance": "recommend", "quote": "H2 fills this gap nicely, easily handling both in- memory and remote JDBC access", "excerpt": "For the Java ecosystem, H2 fills this gap nicely, easily handling both in- memory and remote JDBC access: https://frequal.com/java/TheBestDatabase.html", "context": "", "use_case": "In-memory and remote JDBC", "switched_from": "", "story": "Deep dive into Turso, the \"SQLite rewrite in Rust\""}, {"id": 744211409, "item_id": 46513213, "url": "https://news.ycombinator.com/item?id=46513213", "by": "erichocean", "date": "2026-01-06", "stance": "recommend", "quote": "", "excerpt": "The equivalent \"platform native\" database for Clojure is Datalevin [0], which has a Datomic-like Datalog query language with SQLite-style semantics. Recommended. [0] https://github.com/juji-io/datalevin", "context": "", "use_case": "", "switched_from": "", "story": "C Is Best"}, {"id": 744203474, "item_id": 46512717, "url": "https://news.ycombinator.com/item?id=46512717", "by": "giancarlostoro", "date": "2026-01-06", "stance": "recommend", "quote": "I prefer to use H2 in some cases over SQLite", "excerpt": "I forgot what Limbo was, Rust rewrite of SQLite, now called Turso. https://github.com/tursodatabase/turso I could see it being useful for pure Rust projects once its completed. I mean in Java / Kotlin land, I prefer to use H2 in some cases over SQLite since its native to the platform and H2 is kind of nice altogether. I could see myself only using this in Rust in place of SQLite if its easy to integrate and use on th", "context": "", "use_case": "embedded Java/Kotlin database", "switched_from": "", "story": "C Is Best"}]}