LuxCore

Referencia

Motores de base de datos verificados, sistemas donde corre y comparación con su antecesor sobre Tomcat.

01

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.

MotorEstadoNota
H2 2.2VerificadoEn memoria y en archivo. Motor de la aplicación de ejemplo y de sus 36 pruebas de punta a punta.
PostgreSQL 16Verificado47 casos en contenedor: BIGSERIAL, decimales exactos, booleanos nativos, fechas y LIMIT/OFFSET.
MySQL 8VerificadoLos mismos 47 casos: AUTO_INCREMENT, booleanos sobre TINYINT y claves generadas.
MariaDBSin verificarComparte protocolo y dialecto con MySQL, así que debería comportarse igual.
SQL ServerNecesita trabajoNo admite LIMIT/OFFSET: usa OFFSET … FETCH. La paginación requiere un ajuste.
OracleSin verificarDevuelve las columnas en mayúsculas, que ya está contemplado desde que se corrigió ese fallo.
SQLiteSin verificarSin concurrencia de escritura: el pool debería configurarse a 1.
Qué significa «verificado» aquí

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.

02

Dónde corre

No hay código nativo ni nada específico de una plataforma. Donde haya un JDK 21 o superior, corre igual.

SistemaEstadoNota
macOSProbadoIntel y Apple Silicon. Donde se desarrolló y donde corren las 1 238 pruebas.
LinuxProbadoLas 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.
WindowsSin verificarNada toca rutas ni permisos específicos del sistema.
ContenedoresSin verificarCualquier imagen con JRE 21. Sin contenedor de servlets, la imagen es el JRE más 223 KB.
Requisito real
Java 21 por los hilos virtuales: el servidor asigna uno por conexión, y sin ellos el modelo no se sostiene. Se desarrolló y midió con OpenJDK 25.
Sin código nativo
Ni JNI, ni bibliotecas del sistema, ni rutas absolutas. El JAR es el mismo en todas partes.
03

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étricaJxMVC sobre TomcatLuxCore
Arranque698 ms106 ms
Artefacto253 KB + ~15 MB297 KB
Necesita contenedorTomcat 10.1+no
Dependencias en runtimeJakarta EE 10ninguna
Líneas de producción10 37912 784
Pruebas3471 238
Pruebas / código22 %54 %
rps /json23 30725 431
Memoria (RSS)191 MB136 MB

Contra los otros cinco

Los seis en contenedores idénticos, 64 conexiones, 30 segundos, mediana de cinco repeticiones, cero errores. Ordenado por arranque.

FrameworkArranqueImagenRSS/plaintext/json/db
LuxCore106 ms110,3 MB136,4 MB26 42525 43125 931
Javalin451 ms115,2 MB285,7 MB21 99425 12524 459
JxMVC698 ms110,1 MB191,5 MB24 24023 30718 771
Quarkus707 ms123,2 MB259,8 MB25 51522 74421 258
Micronaut838 ms120,7 MB201,2 MB18 38119 08817 213
Spring Boot1467 ms127,3 MB352,5 MB19 80920 43220 088
Qué dice esta tabla, y qué no

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.