You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gsoc@community.apache.org by "Chaokun Yang (Jira)" <ji...@apache.org> on 2026/02/20 07:43:00 UTC
[jira] [Updated] (GSOC-318) Fory gRPC Java/Python Integration
[ https://issues.apache.org/jira/browse/GSOC-318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chaokun Yang updated GSOC-318:
------------------------------
Summary: Fory gRPC Java/Python Integration (was: Implement Fory gRPC Java/Python Integration)
> Fory gRPC Java/Python Integration
> ---------------------------------
>
> Key: GSOC-318
> URL: https://issues.apache.org/jira/browse/GSOC-318
> Project: Comdev GSOC
> Issue Type: New Feature
> Reporter: Chaokun Yang
> Priority: Major
> Labels: fory, gsoc2026, java, mentor
>
> *Description:*
> Apache Fory can already generate high-performance Java and Python model code from IDL, but end-to-end Java/Python gRPC integration is not available as a unified workflow.
> This project will implement Java and Python gRPC integration in the Fory compiler by generating language-specific service and transport artifacts.
> Java output artifacts: *Service.java and *Grpc.java.
> Python output artifacts: *_service.py and *_grpc.py.
> The implementation must use Fory serialization only, without protobuf runtime payload types. It must follow compiler conventions and keep runtime overhead low.
> *Expected outcomes:*
> 1. Generate Java and Python gRPC service and binding code from service definitions.
> 2. Support unary and streaming RPC APIs based on Fory service IR.
> 3. Generate Fory-based request and response marshalling for both languages.
> 4. Implement zero-copy decode paths for inbound payloads in both Java and Python, with a safe fallback path when zero-copy cannot be applied.
> 5. Add golden code generation tests for output file names and key method signatures in both Java and Python generators.
> 6. Provide runnable Java and Python gRPC examples using generated stubs and Fory codec.
> 7. Update compiler documentation for Java and Python gRPC code generation usage and constraints.
> *Required cross-language gRPC tests between Java and Python services:*
> 1. Add integration tests for Java server with Python client.
> 2. Add integration tests for Python server with Java client.
> 3. Cover request and response round-trip correctness using Fory-serialized payloads.
> 4. Include unary RPC coverage as required. Include streaming coverage when corresponding generated streaming APIs are in scope.
> 5. Validate compatibility for normal cases and key error paths, including decode errors and type mismatch.
> 6. Add coverage for zero-copy decode paths and fallback behavior in both Java and Python integrations.
> CI end-to-end test requirements:
> 1. Add Java and Python gRPC end-to-end interoperability tests into CI.
> 2. CI must execute both directions: Java server to Python client, and Python server to Java client.
> 3. CI must fail on serialization compatibility regressions.
> 4. CI should run deterministic test cases with stable assertions for payload correctness and error handling behavior.
> *Skills:*
> Java, Python, gRPC Java, grpcio, compiler and code generation, serialization internals, testing, performance optimization.
> *Difficulty:*
> Medium to Hard.
> *Project size:*
> Preferred 350 hours.
> *Potential mentors:*
> Chaokun Yang, Weipeng Wang.
> *Source links:*
> https://github.com/apache/fory/issues/3272
> https://github.com/apache/fory/issues/3273
> https://fory.apache.org/docs/next/compiler/compiler_guide
> https://github.com/apache/fory/tree/main/compiler
> https://github.com/apache/fory/tree/main/java
> https://github.com/apache/fory/tree/main/python
> https://fory.apache.org/docs/next/guide/java/
> https://fory.apache.org/docs/guide/python/
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: gsoc-unsubscribe@community.apache.org
For additional commands, e-mail: gsoc-help@community.apache.org