[java] Compile time processing of row format codecs

Đang mở
#3,671 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@alisha-1000 đang làm issue này rồi.

Từ ngày 14/9/2026.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Sôi nổi
Công nghệ
java
Lĩnh vực
build-system, devtools

Hướng nghiên cứu

Bắt đầu bằng việc điều tra cơ chế tạo các lớp row codec hiện tại trong runtime của Fory Java và các vấn đề liên quan đến trình biên dịch foryc và plugin Maven được đề cập trong yêu cầu. Xác định xem cách tiếp cận dựa trên annotation processor có phù hợp với các hướng hiện có đó hay không; công việc được xem là hoàn tất khi có thiết kế tạo mã tại thời điểm biên dịch đã được thống nhất và một prototype được xác thực trong quá trình biên dịch bằng javac.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

💡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.

Ngôn ngữ chính
Java
Star
4.6k
Fork
470
Merge trung bình
9 giờ 28 phút
Pull request đã merge (30 ngày)
33

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/fory

Tất cả issue của apache/fory

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.