Versions Compared

Key

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

...

...

Apache OpenDAL oftp, OpenDAL FTP Server

cross posted at https://github.com/apache/opendal/issues/4132

Background

OpenDAL is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way. oftp can expose OpenDAL power in FTP way that allow users to access storage services via FTP protocol.

Objectives

Features

  • Impelment a FTP Server based on opendal

Tasks

  • Implement features that in scope
  • Implement tests suite

Recommended Skills

  • Familiar with Rust
  • Familiar with basic ideas of FTP protocol
  • Familiar with OpenDAL Rust Core

Mentor

Mentor: PsiACE, Apache Apache Member, psiace@apache.org
Mailing List: dev@opendal.apache.org
Please leave comments if you want to be a mentor

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Hao Ding, mail: xuanwo (at) apache.org
Project Devs, mail: dev (at) opendal.apache.org

...

EventMesh

Apache

ShenYu KitexPlugin

EventmMesh Enhance the serverless ability for EventMesh

Apache EventMesh
Apache EventMesh is a new generation serverless event middleware for building distributed event-driven applications.

Website: https://eventmesh.apache.org

GitHub: https://github.com/apache/eventmesh

Upstream Issue:

Description
`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.

`WASM`(WebAssembly) bytecode is designed to be encoded in a size- and load-time-efficient binary format. WebAssembly aims to leverage the common hardware features available on various platforms to execute in browsers at machine code speed.

`WASI`(WebAssembly System Interface) allows WASM to run in non browser environments such as Linux.

This plugin should base on [WasmPlugin](https://github.com/apache/shenyueventmesh/issues/4612), whcih means other languages, as long as their code can be compiled into WASM bytecode (such as Rust/golang/C++), can be used to write ShenYu plugins.

[kitex](https://github.com/cloudwego/kitex) is a Go RPC framework with high-performance and strong-extensibility for building micro-services.

4765

Background

EventMesh currently has Eventing capabilities in the serverless field, but it should also improve and supplement the automatic expansion and contraction capabilities of eventmesh's own services and access services. This service is the coordinator responsible for automatically scaling services connected to EventMesh, supporting automatic scaling from 0 to n and scaling down from n to 0 based on event traffic or other user conditions.

Task

1. Discuss with the mentors what you need to do

2. Learn the details of the Apache EventMesh project

3. Implement the auto scaling service for eventmesh, which can support different auto scaling strategies by default, or knaive and keda can be selected as plugin services for automatic expansion and contraction of the service.

Recommended Skills

1. Familiar with go and K8S

2. Familiar with Knative\KEDA

Difficulty: Major
Project size: ~350 hour (large)

Mentor

Eason Chen, PMC of Apache EventMesh, You can find useful information [here](https://github.com/cloudwego/kitex/issues/1237).The usage documentation for WasmPlugin is [here](qqeasonchen, chenguangsheng@apache.org

Mike Xue, PMC of Apache EventMesh, https://shenyu.apache.org/docs/next/developer/custom-plugin/).

Relevant Skills
Know the use of Apache ShenYu, especially the wasm plugin.
Familiar with Golang and Java.

Task List

  • [ ] add `shenyu-client-kitex` to [shenyu-client-golang](https://github.com/apache/shenyu-client-golang);
  • [ ] add `shenyu-plugin-kitex` module;
  • [ ] add `shenyu-spring-boot-starter-plugin-kitex` module;
  • [ ] add `shenyu-integrated-test-kitex` module;
  • github.com/xwm1992, mikexue@apache.org

    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Xue Weiming, mail: mikexue (at) apache.org
    Project Devs, mail: dev (at) eventmesh.apache.org

    ShenYu

    Apache ShenYu KitexPlugin

    Description
    `Apache ShenYu` is a Java native API Gateway for service proxy, protocol conversion and API governance.

    `WASM`(WebAssembly) bytecode is designed to be encoded in a size- and load-time-efficient binary format. WebAssembly aims to leverage the common hardware features available on various platforms to execute in browsers at machine code speed.

    `WASI`(WebAssembly System Interface) allows WASM to run in non browser environments such as Linux.

    This plugin should base on [WasmPlugin]

    [ ] add doc to [shenyu-website]

    (https://github.com/apache/shenyu

    -website

    /issues/4612), whcih means other languages, as long as their code can be compiled into WASM bytecode (such as Rust/golang/C++), can be used to write ShenYu plugins.


    [kitex](

    ) for `KitexPlugin`;

    Links:

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

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

     
    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    dragon-zhang/moremind, mail: zhangzicheng@apache.orgImage Removed , moremind@apache.orgImage Removed
    Project Devs, mail: dev@shenyu.apache.orgImage Removed

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

    EventMesh

    cloudwego/kitex) is a Go RPC framework with high-performance and strong-extensibility for building micro-services.

    You can find useful information [here](https://github.com/cloudwego/kitex/issues/1237).

    The usage documentation for WasmPlugin is [here](https://shenyu.apache.org/docs/next/developer/custom-plugin/).


    Relevant Skills
    Know the use of Apache ShenYu, especially the wasm plugin.
    Familiar with Golang and Java.


    Task List


    Links:

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

    issues

    Apache EventmMesh Enhance the serverless ability for EventMesh

    Apache EventMesh
    Apache EventMesh is a new generation serverless event middleware for building distributed event-driven applications.

    Website: https://eventmesh.apache.org

    GitHub: https://github.com/apache/eventmesh

    Upstream Issue: https://github.com/apache/eventmesh/issues/4765

    Background

    EventMesh currently has Eventing capabilities in the serverless field, but it should also improve and supplement the automatic expansion and contraction capabilities of eventmesh's own services and access services. This service is the coordinator responsible for automatically scaling services connected to EventMesh, supporting automatic scaling from 0 to n and scaling down from n to 0 based on event traffic or other user conditions.

    Task

    1. Discuss with the mentors what you need to do

    2. Learn the details of the Apache EventMesh project

    3. Implement the auto scaling service for eventmesh, which can support different auto scaling strategies by default, or knaive and keda can be selected as plugin services for automatic expansion and contraction of the service.

    Recommended Skills

    1. Familiar with go and K8S

    2. Familiar with Knative\KEDA

    Difficulty: Major
    Project size: ~350 hour (large)

    Mentor

    Eason Chen, PMC of Apache EventMesh, https://github.com/qqeasonchen, chenguangsheng@apache.org

    shenyu/issues/5425

     
    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    zhangzicheng/mahaitao, mail: zhangzicheng@apache.orgImage Added , mahaitao@apache.orgImage Added
    Project Devs, mail: dev@shenyu.apache.orgImage Added

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

    James Server

    Implement RFC-8617 The Authenticated Received Chain (ARC) Protocol

    What

    https://datatracker.ietf.org/doc/html/rfc8617

    https://arc-spec.org/

    The Authenticated Received Chain (ARC) protocol provides an
    authenticated "chain of custody" for a message, allowing each entity
    that handles the message to see what entities handled it before and
    what the message's authentication assessment was at each step in the
    handling.

    IE secured and standard Received headers.

    Example:

                ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
                b=S4DQRVgRLMeqank+UkagI9DIPrecaQa+tD+qrvD1XyuYolqGtWYole5yzajb6B71t9ceuFfCWYBmbze89vRt9bCc4KpcjEjzEzuf0xTo4HevTzZ62DEqXKzuXn+nWSGEAdrAcXS3w4RaoyeFC3ypKalcHJggiMStBBKuMG2k1jTk5vxirVqtxLr526AQ3XNGDEewIRMyhbjKDHKinjknJGLucWWli5YOheM4CDVwZXsbNbfhp8TPQitFd411+SDWRduqN2uKE/IqHn1FgqacCKkQaew5MS+GywnbCiNp2BHRgHMJbOt2gIHhFFLiPAow/98PyAdCPAqRmHqvUqSyRQ==
                ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
                s=arcselector9901;
                h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
                bh=FrVWL4P2FSzOMb/KTATCDQLYPJHy7pwVkwAdt3ueFh8=;
                b=E+f/prHAHynoo8GBK4s4Dxsdch6uPcErYd9R9h24Lb9sHlBVycnXby5PjcwqGtnvqEo14+8MEdxv41PYzIGHldjWh8CPgK6YHeWu+Zk8zwy05atOXXRgGkiRdge2bFSgtP4RLvoyV9kwngnR/vCIbSyTchnrZKyQ2IVCyZbEZtpDBgv4YtF9/972A+hZQLvymg4rZai74RDrVxVPJ2hmKOBSfaqTlUIm82HO5D2DMbbN50EmN9cicVOVkFo1d9m7sz7azq5VzybS/52B4nd7uby7ITkM/Enw/tihr9E6NHA31HgqEt8dx9pjTt4VJjVZbjSrv1AyKBl6VSxPerKzeA==
                ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
                smtp.mailfrom=docaposte.fr; dmarc=pass action=none header.from=docaposte.fr;
                dkim=pass header.d=docaposte.fr; arc=none
                

    How

    Implement a Mailet implementing ARC

    Implement a Matcher validating ARC

    Documentation (README)

    If applicable, parsing ARC records shall be done as a separate maven module.

    Definition of done

    GSOC notes

    Presenting a 1 week POC on the topic (as a separate mailet) would greatly improve the submission.

    How to write custom mailet / matcher: https://github.com/apache/james-project/tree/master/examples/custom-mailetsMike Xue, PMC of Apache EventMesh, https://github.com/xwm1992, mikexue@apache.org

    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Xue WeimingBenoit Tellier, mail: mikexue btellier (at) apache.org
    Project Devs, mail: dev (at) eventmeshjames.apache.org

    Openmeetings

    Add blur background filter options on video sharing - AI-ML

    OpenMeetings uses webRTC and HTML5 video to share audio video. Purely browser based.

    One feature missing is the ability to blur your webcam's camera background.

    There are multiple ways to achieve it, Google Meet seems to use: https://www.tensorflow.org/ 

    Tensorflow are AI/ML models, they provide precompiled models into JS, for detection of face/body it seems: https://github.com/tensorflow/tfjs-models/tree/master/body-segmentation is the best model.

    Since Chrome 14 there is also a Background Blur API (relying on operating system APIs): https://developer.chrome.com/blog/background-blur - but that doesn't seem to be widely or reliable supported by operating systems yet.

    The project would be about adding the background blur into a simple demo and then integrate into the OpenMeetings project. Additionally other types of backgrounds can be added.

    Tensorflow TFJS is under the Apache 2.0 License (See LICENSE) and should be possible to redistribute with Apache OpenMeetings.

    Other live demos and examples:

    https://blog.francium.tech/edit-live-video-background-with-webrtc-and-tensorflow-js-c67f92307ac5



    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Sebastian Wagner, mail: sebawagner (at) apache.org
    Project Devs, mail: dev (at) openmeetings.apache.org

    ...

    Support Aggregate Engines in Apache UIMACPP

    UIMA is a framework for unstructured information management, built around the idea of heavy annotators interoperating using a common exchange format.

    It has been in production use for about two decades.

    The framework is mostly written in Java. It has a C++ counterpart that implements a subset of the framework.

    The challenge for this GSOC is to work together with the mentor to implement the full framework.

    More details on GitHub: https://github.com/apache/uima-uimacpp/issues/6


    Benefits to the community

    This has been discussed as one of the main roadblocks in using the C++ version of the framework by its users: https://lists.apache.org/thread/f1r3sghgn2oqhvzz27y26zg6j3olv8qq


    About the mentor

    Dr. Duboue has more than 25 years of experience in AI.  He has a Ph.D. in Computer Science from Columbia University. and was a member of the IBM Watson team that beat the Jeopardy! Champions.

    Aside from his consulting work, he he has taught in three different countries and done joint research with more than fifty co-authors.

    He has years of experience mentoring both students and employees.



    Difficulty: Major
    Project size: ~350 hour (large)
    Potential mentors:
    Pablo Duboue, mail: drdub (at) apache.org
    Project Devs, mail: dev (at) uima.apache.org