Referencia
Motores de base de datos verificados, sistemas donde corre y comparación con su antecesor sobre Tomcat.
Bases de datos
lux-data habla JDBC y nada más. Sirve cualquier motor con driver JDBC — el
driver lo pone tu aplicación, que es la única dependencia externa que LuxCore admite.
| Motor | Estado | Nota |
|---|---|---|
| H2 2.2 | Verificado | En memoria y en archivo. Motor de la aplicación de ejemplo y de sus 36 pruebas de punta a punta. |
| PostgreSQL 16 | Verificado | 47 casos en contenedor: BIGSERIAL, decimales exactos, booleanos nativos, fechas y LIMIT/OFFSET. |
| MySQL 8 | Verificado | Los mismos 47 casos: AUTO_INCREMENT, booleanos sobre TINYINT y claves generadas. |
| MariaDB | Sin verificar | Comparte protocolo y dialecto con MySQL, así que debería comportarse igual. |
| SQL Server | Necesita trabajo | No admite LIMIT/OFFSET: usa OFFSET … FETCH. La paginación requiere un ajuste. |
| Oracle | Sin verificar | Devuelve las columnas en mayúsculas, que ya está contemplado desde que se corrigió ese fallo. |
| SQLite | Sin verificar | Sin concurrencia de escritura: el pool debería configurarse a 1. |
Los tres motores marcados pasan la misma batería de 47 casos, levantados en
contenedores: claves generadas, decimales exactos, booleanos, fechas, paginación,
alias en mayúsculas, transacciones confirmadas y deshechas, repositorios e inserción
por lotes. Esa batería encontró un fallo real —Row.as() ignoraba
@Column y devolvía los campos en null— que ninguna prueba con driver
simulado había detectado.
Dónde corre
No hay código nativo ni nada específico de una plataforma. Donde haya un JDK 21 o superior, corre igual.
| Sistema | Estado | Nota |
|---|---|---|
| macOS | Probado | Intel y Apple Silicon. Donde se desarrolló y donde corren las 1 238 pruebas. |
| Linux | Probado | Las 1 238 pruebas en verde sobre Linux 6.12, con PostgreSQL y MySQL reales. En integración continua, sobre JDK 21 y 25, en cada cambio. |
| Windows | Sin verificar | Nada toca rutas ni permisos específicos del sistema. |
| Contenedores | Sin verificar | Cualquier imagen con JRE 21. Sin contenedor de servlets, la imagen es el JRE más 223 KB. |
Frente a Tomcat
LuxCore nace de JxMVC 3.4.0, un framework MVC que funciona y está en producción, pero que necesita Tomcat para arrancar. La comparación es contra su propio antecesor.
| Métrica | JxMVC sobre Tomcat | LuxCore |
|---|---|---|
| Arranque | 698 ms | 106 ms |
| Artefacto | 253 KB + ~15 MB | 297 KB |
| Necesita contenedor | Tomcat 10.1+ | no |
| Dependencias en runtime | Jakarta EE 10 | ninguna |
| Líneas de producción | 10 379 | 12 784 |
| Pruebas | 347 | 1 238 |
| Pruebas / código | 22 % | 54 % |
rps /json | 23 307 | 25 431 |
| Memoria (RSS) | 191 MB | 136 MB |
Contra los otros cinco
Los seis en contenedores idénticos, 64 conexiones, 30 segundos, mediana de cinco repeticiones, cero errores. Ordenado por arranque.
| Framework | Arranque | Imagen | RSS | /plaintext | /json | /db |
|---|---|---|---|---|---|---|
| LuxCore | 106 ms | 110,3 MB | 136,4 MB | 26 425 | 25 431 | 25 931 |
| Javalin | 451 ms | 115,2 MB | 285,7 MB | 21 994 | 25 125 | 24 459 |
| JxMVC | 698 ms | 110,1 MB | 191,5 MB | 24 240 | 23 307 | 18 771 |
| Quarkus | 707 ms | 123,2 MB | 259,8 MB | 25 515 | 22 744 | 21 258 |
| Micronaut | 838 ms | 120,7 MB | 201,2 MB | 18 381 | 19 088 | 17 213 |
| Spring Boot | 1467 ms | 127,3 MB | 352,5 MB | 19 809 | 20 432 | 20 088 |
Dice que LuxCore gana en todo menos en tamaño de imagen, y ahí pierde por
0,2 MB. Arranca 4,3 veces más rápido que el siguiente, gasta la menor memoria de los
seis y lidera los tres endpoints. En /db —el que mide el framework
haciendo trabajo de verdad— saca un 38 % al JxMVC del que viene.
Y no dice cifras absolutas citables: se midió en Docker Desktop, dentro de una VM. Las condiciones fueron idénticas para los seis, así que la comparación es justa; los números sueltos hay que repetirlos en bare-metal antes de ponerlos en ningún sitio.