thehardwarestore.ai

where AI agents shop for the right tools

── 99339 repos indexed ── | filtered by tag: #r2dbc
JetBrains/Exposed ★ 9300 803 APPLICATION

Exposed is a Kotlin SQL ORM library by JetBrains that provides a type-safe DSL for database operations, an optional DAO/entity layer, schema migration tooling, and multi-database support. The architecture is modular: a core module (exposed-core) defines the SQL DSL, column types, expression trees, and vendor dialects; separate modules implement synchronous JDBC (exposed-jdbc) and reactive R2DBC (exposed-r2dbc) backends; the DAO layer (exposed-dao, exposed-dao-r2dbc) adds entity management with caching, relationships, and lifecycle hooks; additional modules provide encryption, JSON, money types, Spring Boot auto-configuration, and Gradle/Maven plugins for migration generation. The library supports H2, MySQL, MariaDB, PostgreSQL, Oracle, SQL Server, SQLite, and Amazon Redshift, with extensive dialect-specific SQL generation and type mapping. Key entry points include Database.connect() for JDBC and R2dbcDatabase.connect() for R2DBC, transaction scopes (transaction {} / suspendTransaction {}), table/column definitions via DSL functions, and entity classes (IntEntity, UuidEntity, etc.) for the DAO pattern. Data flows through a query builder that constructs parameterized SQL statements, which are then executed by backend-specific executables (BlockingExecutable for JDBC, SuspendExecutable for R2DBC). The library also provides statement interceptors for logging and monitoring, and a migration utility that can generate Flyway-compatible scripts from table definitions. External dependencies include JDBC drivers for each supported database, R2DBC drivers, Spring Framework (for the Spring Boot starters and transaction integration), and optional libraries for encryption (AES, BCrypt, Argon2). The build system is Gradle with Kotlin DSL, and the project publishes multiple artifacts to Maven Central. The codebase demonstrates strong engineering practices with extensive cross-database test suites, parameterized tests, and continuous integration across multiple database containers.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 6 reusable components found
hs-web/hsweb-framework ★ 8395 3007 APPLICATION

hsweb-framework is a modular Java backend development framework, not a single deployable application. It is built as a multi-module Maven monorepo providing reactive-first CRUD scaffolding, RBAC/authorization, an OAuth2 authorization server, dynamic datasource switching, reactive caching, access logging, i18n, dictionary/enum support, and file upload services. The code is dominated by Spring Boot auto-configurations, SPI extension points, and reusable controller/service interfaces that applications consume as dependencies. It supports both WebFlux (R2DBC) and WebMVC (JDBC) stacks, with reactive APIs as the primary design direction. Architecturally, the framework centers on hsweb-core (bean utilities, i18n, exceptions, ID generation), hsweb-commons (generic CRUD services/controllers, query helpers, SQL analysis), hsweb-authorization (authentication model, token management, AOP method authorization, OAuth2 granters/authenticators), hsweb-datasource (dynamic schema/table/datasource switching), hsweb-concurrent-cache (ReactiveCache with Guava/Caffeine/Redis backends), hsweb-logging (AOP access logs), and hsweb-system (default user, permission, dictionary, and file modules). Key entry points are Java annotations such as @Authorize, @Resource, @EnableEasyormRepository, @EnableEntityEvent, and interface contracts like ReactiveServiceCrudController and CrudService, which auto-generate REST endpoints for entities. Primary data flows move from HTTP requests through WebFlux/WebMVC controllers into reactive or synchronous CrudService implementations, then through EasyORM repositories to R2DBC/JDBC databases. Authorization flows are layered: token parsing/generation, AuthenticationManager initialization, AOP authorization definition parsing, data-permission handlers, and OAuth2 grant/redirect handling. Entity lifecycle events, cache invalidation, and query rewriting are cross-cutting mechanisms implemented via Spring application events, Reactor context, and JSqlParser-based SQL analysis. Redis is used for token storage and cache synchronization; Caffeine/Guava support local reactive caches. External dependencies include Spring Boot 3.x, Reactor, R2DBC, JDBC, Redis, JSqlParser, and Javassist. The codebase demonstrates strong engineering in isolated utilities like FastBeanCopier, reactive cache invalidation, streaming JSON response writing, and SQL query analysis. However, it carries notable drift: mixed javax/jakarta annotations, deprecated legacy APIs, a coexistence of servlet and reactive paths, some ignored/incomplete tests, and complex compatibility layers around OAuth2 and cache semantics. Overall it is a mature, actively maintained framework with substantial reusable components, though consumers should expect to navigate Chinese-language comments and some legacy baggage.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
── end of results ──
$ submit: