[java] Compile time processing of row format codecs

Abierto
#3,671 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@alisha-1000 ya está trabajando en esto.

Desde el 14/9/2026.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
java

Línea de trabajo

Comienza investigando la generación actual en tiempo de ejecución de clases de codificación de filas de Fory Java y los problemas relacionados con el compilador foryc y el plugin de Maven mencionados en la solicitud. Determina si un enfoque basado en un procesador de anotaciones encaja con esas líneas de trabajo existentes; se consideraría completado cuando exista un diseño acordado para la generación en tiempo de compilación y un prototipo validado durante la compilación con javac.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

💡Feature Request

Currently, Fory Java will generate all row codec classes at runtime. You can see it print in the application startup logs - generate source code, compile, load class.

Java supports compiler hooks in the form of annotation processors. This allows you to inspect code under compilation, generate new code, and then have javac continue to compile that.

Would it make sense to add support to Fory to pre-generate codec classes during compile time? Then your deployable application already has all classes available, potentially pre-verified and pre-linked using class data sharing, without bringing a compile step into runtime.

I note some open issues about foryc compiler with a Maven plugin, but this seems to be a different issue, more related to IDL compilation.

The generated code will be less flexible - not possible to dynamically link in an updated version of Fory, you must inline any runtime Fory deps.

Is this an interesting approach? If it would not conflict with any other project future directions, I might attempt a prototype at some point.

Lenguaje dominante
Java
Estrellas
4.6k
Forks
470
Merge medio
9 h 28 min
PR fusionados (30 d)
33

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/fory

Todos los issues de apache/fory

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.