Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Contents

...

Apache ShenYu Gsoc 2023 - Design license scanning function

Background

At present, shenyu needs to manually check whether the license is correct one by one when releasing the version.

Tasks

  1. Discuss with the tutor to complete the requirement design and technical design of the scanning license.
  2. Finished scanning the initial version of the license.
  3. Complete the corresponding test.

Relevant Skills

  1. Familiar with Java.
Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
SiYing Zheng, mail: impactcn (at) apache.org
Project Devs, mail: dev (at) shenyu.apache.org

Apache ShenYu Gsoc 2023 - ShenYu End-

Shenyu-Admin Internationalization

To-End SpringCloud plugin test case

Background:

Shenyu is a native API gateway for service proxy, protocol translation and API governance. It can manage and maintain the API through Shenyu-admin, and support internationalization in Chinese and English. Unfortunately, Shenyu-admin is only internationalized on the front end. The message prompt returned by the back-end interface is still in English. Therefore, we need to implement internationalization support for the back-end interface.This will lay a good foundation for shenyu to move towards more language support.

Relevant skills

  • Related skills spring resources
  • Spring Internationalization
  • Front-end react framework

API reference

            java.util.Locale;
            org.springframework.context.MessageSource;
            org.springframework.context.support.ResourceBundleMessageSource; 

Interface effect example

            ## zh request example
            POST http://localhost:9095/plugin
            Content-Type: application/json
            Location: cn-zh
            X-Access-Token: xxx
            {
            "name": "test-create-plugin",
            "role": "test-create-plugin",
            "enabled": true,
            "sort": 100
            }
            Respone
            {
            "code": 600,
            "message": "未登录"
            }
            
            ### en request example
            POST http://localhost:9095/plugin
            Content-Type: application/json
            Location: en
            X-Access-Token: xxx
            {
            "name": "test-create-plugin",
            "role": "test-create-plugin",
            "enabled": true,
            "sort": 100
            }
            Respone
            {
            "code": 600,
            "message": "token is error"
            } 

Task List

  • The task discussed with the tutor how to achieve the internationalization of shenyu-admin background
  • Some prompt message translation
  • Get through the internationalization of front-end, obtain the client region information through http protocol, support the language of the corresponding region.
  • Leave the extension of other multi-language internationalization support interface, so as to facilitate the localization transformation of subsequent users.

but Shenyu lack of End-To-End Tests.

Relevant skills:

1.Understand the architecture of ShenYu

2.Understand SpringCloud micro-service and ShenYu SpringCloud proxy plugin.

3.Understand ShenYu e2e framework and architecture.

How to coding

1.please refer to org.apache.shenyu.e2e.testcase.plugin.DividePluginCases

How to test

1.start shenyu admin in docker

2.start shenyu boostrap in docker

3.run test case org.apache.shenyu.e2e.testcase.plugin.PluginsTest#testDivide

Task List

1.develop e2e tests of the springcloud plug-in.

2.write shenyu e2e springcloud plugin documentation in shenyu-website.

3.refactor the existing plugin test cases.


Links:

website: https://shenyu.apache.org/

issues: https://github.com/apache/shenyu/issues/4474


Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
Fengen He, mail: hefengen (at) apache.org
Project Devs, mail: dev (at) shenyu.apache.org

Apache ShenYu Gsoc 2023 - ShenYu WasmPlugin

Background:{}

Apache ShenYu is a Java native API Gateway for service proxy, protocol conversion and API governance. Currently, ShenYu has good scalability in the Java language. However, ShenYu's support for multiple languages is still relatively weak.

The wasm bytecode is designed to be encoded in a size- and load-time-efficient binary format. WebAssembly aims to execute at native speed by taking advantage of common hardware capabilities available on a wide range of platforms.

The goal of WasmPlugin is to be able to run wasm bytecode(wasmer-java is a good choice, if you find a better choice, please discuss with me), and other languages can write ShenYu plugins based on this language(such as Rust/golang/C++) as long as they can be compiled into wasm bytecode.

More documents on wasm and WASI are as follows:
https://github.com/WebAssembly/design
https://github.com/WebAssembly/WASI

Relevant Skills

Know the use of Apache ShenYu, especially the plugin
Familiar with Java and another language which can be compiled into wasm bytecode

Task List

1.develop shenyu-wasm-plugin.

2.write integrated test for shenyu-wasm-plugin.

3.write wasm plugin documentation in shenyu-website.


Links:

website: https://shenyu.apache.org/

issues:  https://github.com/apache/shenyu/issues/4492

Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
ZiCheng Zhang, mail: zhangzicheng
Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Keguo Li, mail: likeguo (at) apache.org
Project Devs, mail: dev (at) shenyu.apache.org

Apache ShenYu Gsoc 2023 -

ShenYu End-To-End SpringCloud plugin test case

Shenyu-Admin Internationalization

Background

:

Shenyu is a native API gateway for service proxy, protocol translation and API governance. but Shenyu lack of End-To-End Tests.

Relevant skills:

1.Understand the architecture of ShenYu

2.Understand SpringCloud micro-service and ShenYu SpringCloud proxy plugin.

3.Understand ShenYu e2e framework and architecture.

How to coding

1.please refer to org.apache.shenyu.e2e.testcase.plugin.DividePluginCases

How to test

1.start shenyu admin in docker

2.start shenyu boostrap in docker

3.run test case org.apache.shenyu.e2e.testcase.plugin.PluginsTest#testDivide

Task List

1.develop e2e tests of the springcloud plug-in.

2.write shenyu e2e springcloud plugin documentation in shenyu-website.

3.refactor the existing plugin test cases.

Links:

website: https://shenyu.apache.org/

issues: https://github.com/apache/shenyu/issues/4474

Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
Fengen He, mail: hefengen (at) apache.org
Project Devs, mail: dev (at) shenyu.apache.org

Apache ShenYu Gsoc 2023 - ShenYu WasmPlugin

Background:{}

Apache ShenYu is a Java native API Gateway for service proxy, protocol conversion and API governance. Currently, ShenYu has good scalability in the Java language. However, ShenYu's support for multiple languages is still relatively weak.

The wasm bytecode is designed to be encoded in a size- and load-time-efficient binary format. WebAssembly aims to execute at native speed by taking advantage of common hardware capabilities available on a wide range of platforms.

The goal of WasmPlugin is to be able to run wasm bytecode(wasmer-java is a good choice, if you find a better choice, please discuss with me), and other languages can write ShenYu plugins based on this language(such as Rust/golang/C++) as long as they can be compiled into wasm bytecode.

More documents on wasm and WASI are as follows:
https://github.com/WebAssembly/design
https://github.com/WebAssembly/WASI

Relevant Skills

Know the use of Apache ShenYu, especially the plugin
Familiar with Java and another language which can be compiled into wasm bytecode

Task List

1.develop shenyu-wasm-plugin.

2.write integrated test for shenyu-wasm-plugin.

3.write wasm plugin documentation in shenyu-website.

Links:

website: https://shenyu.apache.org/

issues:  https://github.com/apache/shenyu/issues/4492

It can manage and maintain the API through Shenyu-admin, and support internationalization in Chinese and English. Unfortunately, Shenyu-admin is only internationalized on the front end. The message prompt returned by the back-end interface is still in English. Therefore, we need to implement internationalization support for the back-end interface.This will lay a good foundation for shenyu to move towards more language support.

Relevant skills

  • Related skills spring resources
  • Spring Internationalization
  • Front-end react framework

API reference

            java.util.Locale;
            org.springframework.context.MessageSource;
            org.springframework.context.support.ResourceBundleMessageSource; 

Interface effect example

            ## zh request example
            POST http://localhost:9095/plugin
            Content-Type: application/json
            Location: cn-zh
            X-Access-Token: xxx
            {
            "name": "test-create-plugin",
            "role": "test-create-plugin",
            "enabled": true,
            "sort": 100
            }
            Respone
            {
            "code": 600,
            "message": "未登录"
            }
            
            ### en request example
            POST http://localhost:9095/plugin
            Content-Type: application/json
            Location: en
            X-Access-Token: xxx
            {
            "name": "test-create-plugin",
            "role": "test-create-plugin",
            "enabled": true,
            "sort": 100
            }
            Respone
            {
            "code": 600,
            "message": "token is error"
            } 

Task List

  • The task discussed with the tutor how to achieve the internationalization of shenyu-admin background
  • Some prompt message translation
  • Get through the internationalization of front-end, obtain the client region information through http protocol, support the language of the corresponding region.
  • Leave the extension of other multi-language internationalization support interface, so as to facilitate the localization transformation of subsequent users.
Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Keguo Li, mail: likeguo
Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
ZiCheng Zhang, mail: zhangzicheng (at) apache.org
Project Devs, mail: dev (at) shenyu.apache.org

...

[GSoC][Beam] An IntelliJ plugin to develop Apache Beam pipelines and the Apache Beam SDKs

Beam library developers and Beam users would appreciate this : )


This project involves prototyping a few different solutions, so it will be large.

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Pablo Estrada, mail: pabloem (at) apache.org
Project Devs, mail: dev (at) beam.apache.org

Airflow

[GSoC][Airflow] Automation for PMC

This is a project to implement a tool for PMC task automation.

This is a large project.

Mentor will be aizhamal ,

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Pablo Estrada, mail: pabloem (at) apache.org
Project Devs, mail: dev (at) airflow.apache.org

Teaclave

[GSoC][Teaclave (incubating)] Data Privacy Policy Definition and Function Verification

Background

The Apache Teaclave (incubating) is a cutting-edge solution for confidential computing, providing Function-as-a-Service (FaaS) capabilities that enable the decoupling of data and function providers. Despite its impressive functionality and security features, Teaclave currently lacks a mechanism for data providers to enforce policies on the data they upload. For example, data providers may wish to restrict access to certain columns of data for third-party function providers. Open Policy Agent (OPA) offers flexible control over service behavior and has been widely adopted by the cloud-native community. If Teaclave were to integrate OPA, data providers could apply policies to their data, enhancing Teaclave’s functionality. Another potential security loophole in Teaclave is the absence of a means to verify the expected behavior of a function. This gap leaves the system vulnerable to exploitation by malicious actors. Fortunately, most of Teaclave’s interfaces can be reused, with the exception of the function uploading phase, which may require an overhaul to address this issue. Overall, the integration of OPA and the addition of a function verification mechanism would make Teaclave an even more robust and secure solution for confidential computing.

Benefits

If this proposal moves on smoothly, new functionality will be added to the Teaclave project that enables the verification of the function behavior that it strictly conforms to a prescribed policy.

Deliverables

  • Milestones: Basic policies (e.g., addition, subtraction) of the data can be verified by Teaclave; Complex policies can be verified.
  • Components: Verifier for the function code; Policy language adapters (adapt policy language to verifier); Policy language parser; Function source code converter (append policies to the functions).
  • Documentation: The internal working mechanism of the verification; How to write policies for the data.

Timeline Estimation

  • 0.5 month: Policy language parser and/or policy language design (if Rego is not an ideal choice).
  • 1.5 − 2 months: Verification contracts rewriting on the function source code based on the policy parsed. • (∼ 1 month): The function can be properly verified formally (by, e.g., querying the Z3 SMT solver).

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Mingshen Sun, Apache Teaclave (incubating) PPMC, mssun@apache.org

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Mingshen Sun, mail: mssun (at) apache.org
Project Devs, mail: dev (at) teaclave.apache.org

...

Apache SeaTunnel(Incubating) Http Client For SeaTunnel Zeta

Apache SeaTunnel(Incubating)

SeaTunnel is a very easy-to-use ultra-high-performance distributed data integration platform that supports real-time synchronization of massive data. It can synchronize tens of billions of data stably and efficiently every day, and has been used in the production of nearly 100 companies. 

SeaTunnel provides a Connector API that does not depend on a specific execution engine. Connectors (Source, Transform, Sink) developed based on this API can run On many different engines, such as SeaTunnel Zeta, Flink, Spark that are currently supported. SeaTunnel has supported more than 100 Connectors, and the number is surging.

Website: https://seatunnel.apache.org/

GitHub: https://github.com/apache/incubator-seatunnel

Background

To use SeaTunnel, the current user needs to first create and write a config file that specifies the engine that runs the job, as well as engine related parameters. Then define the Source, Transform, and Sink of the job. We hope to provide a client that allows users to define the engine, Source, Transform, and Sink information of the job run directly through code in the client without having to start with a config file. The user can then submit the job definition information through the Client, and SeaTunnel will run these jobs. After the job is submitted, the user can obtain the status of the job running through the Client. For jobs that are already running, users can use this client to manage them, such as stopping jobs, temporary jobs, and so on.

Task

1. Discuss with the mentors what you need to do

2. Learn the details of the Apache SeaTunnel project

3. Discuss and complete design and development

Relevant Skills

  1. Familiar with Java, Http
  2. Familiar with SeaTunnel is better

Mentor

  • Mentor: Jun Gao, Apache SeaTunnel(Incubating) PPMC Member, gaojun2048@apache.org
  • Mentor: Li Liu, Apache SeaTunnel(Incubating) Commiter, ic4y@apache.org
  • Mailing List: dev@seatunnel.apache.org
Difficulty: Major
Project size: ~175 hour (mediumhour (medium)
Potential mentors:
Jun Gao, mail: gaojun2048 (at) apache.org
Project Devs, mail: dev (at) seatunnel.apache.org

Airflow

[GSoC][Airflow] Automation for PMC

This is a project to implement a tool for PMC task automation.


This is a large project.


Mentor will be aizhamal ,

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Jun GaoPablo Estrada, mail: gaojun2048 pabloem (at) apache.org
Project Devs, mail: dev (at) seatunnelairflow.apache.org

CloudStack

CloudStack GSoC 2023 - Improve ConfigDrive to store network information

Github issue: https://github.com/apache/cloudstack/issues/2872


ConfigDrive / cloud-init supports a network_data.json file which can contain network information for a VM.

By providing the network information using ConfigDrive to a VM we can eliminate the need for DHCP and thus the Virtual Router in some use-cases.

An example JSON file:

            {
            "links": [
            {
            "ethernet_mac_address": "52:54:00:0d:bf:93",
            "id": "eth0",
            "mtu": 1500,
            "type": "phy"
            }
            ],
            "networks": [
            {
            "id": "eth0",
            "ip_address": "192.168.200.200",
            "link": "eth0",
            "netmask": "255.255.255.0",
            "network_id": "dacd568d-5be6-4786-91fe-750c374b78b4",
            "routes": [
            {
            "gateway": "192.168.200.1",
            "netmask": "0.0.0.0",
            "network": "0.0.0.0"
            }
            ],
            "type": "ipv4"
            },
            {
            "id": "eth0",
            "ip_address": "2001:db8:100::1337",
            "link": "eth0",
            "netmask": "64",
            "network_id": "dacd568d-5be6-4786-91fe-750c374b78b4",
            "routes": [
            {
            "gateway": "2001:db8:100::1",
            "netmask": "0",
            "network": "::"
            }
            ],
            "type": "ipv6"
            }
            ],
            "services": [
            {
            "address": "8.8.8.8",
            "type": "dns"
            }
            ]
            }

In Basic Networking and Advanced Networking zones which are using a shared network you wouldn't require a VR anymore.

Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
Nicolás Vázquez, mail: nvazquez (at) apache.org
Project Devs, mail: dev (at) cloudstack.apache.org

...

Dubbo GSoC 2023 - Metrics on Dubbo Admin

Dubbo Admin is a console of Dubbo. Today, Dubbo's observability is becoming more and more powerful. We need to directly observe some indicators of Dubbo on Dubbo Admin, and even put forward suggestions for users to improve problems.forward suggestions for users to improve problems.

Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
Albumen Kevin, mail: albumenj (at) apache.org
Project Devs, mail:

Dubbo GSoC 2023 - Development of Dubbo Admin Dashboard UI Pages

In charge of the maintenance of the development of the UI pages of the whole Dubbo Admin project.

Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
Jun Liu, mail: liujun (at) apache.org
Project Devs, mail:

Dubbo GSoC 2023 - Rust Cluster Feature Implementation and Stability Improvement.


Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
Jun Liu, mail: liujun (at) apache.org
Project Devs, mail:

Dubbo GSoC 2023 - Dubbo3 Node.js HTTP/2 RPC Protocol Implementation


Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
Albumen KevinJun Liu, mail: albumenj liujun (at) apache.org
Project Devs, mail:

Dubbo GSoC 2023 -

Development of Dubbo Admin Dashboard UI PagesIn charge of the maintenance of the development of the UI pages of the whole Dubbo Admin project.

Admin Control Plane


Difficulty: Major
Project size: ~175 ~350 hour (medium)
Potential mentors:
Jun Liu, mail: liujun (at) apache.org
Project Devs, mail:
large)
Potential mentors:
Jun Liu, mail: liujun (at) apache.org
Project Devs, mail:

Dubbo GSoC 2023 - Dubbo SPI Extensions on WASM

WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Many capabilities of Dubbo support extensions, such as custom interceptors, routing, load balancing, etc. In order to allow the user's implementation to be used on Dubbo's multiple language SDKs, we can implement cross-platform operation based on wasm capabilities.


The implementation of this topic needs to provide a set of mechanisms for Wasm on Dubbo, covering the implementation of Java and Go. Also supports at least Filter, Router and Loadbalance

Dubbo GSoC 2023 - Rust Cluster Feature Implementation and Stability Improvement

.

Difficulty: Major
Project size: ~175 ~350 hour (mediumlarge)
Potential mentors:
Jun LiuAlbumen Kevin, mail: liujun albumenj (at) apache.org
Project Devs, mail:

Dubbo GSoC 2023 -

Dubbo3 Node.js HTTP/2 RPC Protocol Implementation

Go Web Protocol and Programming Support


Difficulty: Major
Project size: ~175 hour (medium)
Potential mentors:
Jun Liu, mail: liujun (at) apache.org
Project Devs, mail:

Dubbo GSoC 2023 -

Admin Control Plane

Refactor the http layer

Background

Dubbo currently supports the rest protocol based on http1, and the triple protocol based on http2, but currently the two protocols based on the http protocol are implemented independently, and at the same time, they cannot replace the underlying implementation, and their respective implementation costs are relatively high.

Target

In order to reduce maintenance costs, we hope to be able to abstract http. The underlying implementation of the target implementation of http has nothing to do with the protocol, and we hope that different protocols can reuse related implementations

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Jun Liu, mail: liujun (at) apache.org
Project Devs, mail:

Dubbo GSoC 2023 - Dubbo SPI Extensions on WASM

WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Many capabilities of Dubbo support extensions, such as custom interceptors, routing, load balancing, etc. In order to allow the user's implementation to be used on Dubbo's multiple language SDKs, we can implement cross-platform operation based on wasm capabilities.

The implementation of this topic needs to provide a set of mechanisms for Wasm on Dubbo, covering the implementation of Java and Go. Also supports at least Filter, Router and Loadbalance.

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Albumen Kevin, mail: albumenj (at) apache.org
Project Devs, mail:

Dubbo GSoC

2023 - Go Web Protocol and Programming Support

2023 - HTTP/3 Rest Support

HTTP/3 has been formalized as a standard in the last year. Dubbo, as a framework that supports publishing and invoking Web services, needs to support the HTTP/3 protocol.

This task needs to expand the implementation of the current rest protocol to support publishing HTTP/3 services and calling HTTP/3 services.

Difficulty: Major
Project size: ~175 ~350 hour (mediumlarge)
Potential mentors:
Jun LiuAlbumen Kevin, mail: liujun albumenj (at) apache.org
Project Devs, mail:

Dubbo GSoC 2023 -

Refactor the http layer

Background

Dubbo currently supports the rest protocol based on http1, and the triple protocol based on http2, but currently the two protocols based on the http protocol are implemented independently, and at the same time, they cannot replace the underlying implementation, and their respective implementation costs are relatively high.

Target

In order to reduce maintenance costs, we hope to be able to abstract http. The underlying implementation of the target implementation of http has nothing to do with the protocol, and we hope that different protocols can reuse related implementations.

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Albumen Kevin, mail: albumenj (at) apache.org
Project Devs, mail:

Automatically configure pixiu as istio ingress gateway

In the istio mesh environment, the public dubbo/dubbo go provider can be exposed outside the cluster through the http/https protocol through the istio ingress gateway. This requires the ingress gateway to complete the conversion from http to dubbo protocol, which is the main scenario of pixiu; this project Need to complete:
1. Customize pixiu, which can be used as an istio ingress gateway, proxy http/https requests and convert them into dubbo requests;
2. The gateway supports basic user authentication methods.

Basic reference: https://istio.io/latest/blog/2019/custom-ingress-gateway/
https://cloud.ibm.com/docs/containers?topic=containers-istio-custom-gateway

Dubbo GSoC 2023 - HTTP/3 Rest Support

HTTP/3 has been formalized as a standard in the last year. Dubbo, as a framework that supports publishing and invoking Web services, needs to support the HTTP/3 protocol.

This task needs to expand the implementation of the current rest protocol to support publishing HTTP/3 services and calling HTTP/3 services.

Difficulty: Major
Project size: ~350 ~175 hour (largemedium)
Potential mentors:
Albumen Kevin, mail: albumenj (at) apache.org
Project Devs, mail:

...