Hi everyone! I wanted to share a library I’ve been working on:
exposed-vertx-sql-client. As the name suggests, it lets you use Exposed with the Vert.x SQL client, bringing together type-safety and performance.
I originally open-sourced this in 2022 as a rough prototype pulled from my own projects. Now that Exposed has hit 1.0.0, I’ve given it a major polish. It’s ready to try if you’re looking for a reactive way to use Exposed. For Vert.x users, hopefully in the age of AI agents, a type-safe DSL is more hallucination-proof and review-friendly than working with Vert.x numbered tuples, and Exposed provides an excellent choice. And for Exposed users, you can now switch to a much more performant framework while keeping your database logic intact.
Key updates:
•
All Common DBs Supported: PostgreSQL, MySQL, Oracle, Microsoft SQL Server
•
API Cleanup: Tidied up the APIs and added a basic usage guide.
•
Reliability: 71% test coverage on all major APIs.
•
Performance Fix: Eliminated the "one transaction per statement" bottleneck. The new
JdbcTransactionExposedTransactionProvider
allows shared transactions,
achieving 83% to 100% throughput compared to the Vert.x Kotlin baseline as tested on TechEmpower Framework Benchmarks (TFB).
Since TFB recently sunset, you can verify this yourself by cloning the repo and running:
./tfb --test vertx-web-kotlinx-exposed-vertx-sql-client-postgresql vertx-web-kotlinx-postgresql
. I also contributed to the
vertx-web-kotlinx*
and
ktor-exposed-*
portions of TFB, so the comparison is apples-to-apples.
As Exposed may continue to evolve, the APIs aren’t "perfect" yet and might see minor changes, but it's stable enough to try out. I’d love to hear your feedback—stars, issues, and PRs are all welcome!
Slack Conversation