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