The LFX Mentorship Term 3 (from September to November) is open to apply! Contributing to WasmEdge through a paid LFX / CNCF internship program is a sure way to future-proof your resume and skill sets! If you’re interested in making contributions to the CNCF-hosted projects, like WasmEdge, grab the last opportunities in 2023. You will gain the following benefits when you contribute to CNCF-hosted projects like WasmEdge through the LFX Mentorship program.
- Earn a generous stipend ranging from $3000 to $6600, depending on your location
- Learn new developer skills via one-to-one mentoring. If you’re selected, you will be assigned an experienced mentor from the WasmEdge project.
- Gain a rewarding and immersive learning experience
- Position yourself for exciting job opportunities at top software companies
- Become a part of a thriving open-source community and gain a sense of pride and accomplishment
Apply now to join WasmEdge's LFX Mentorship program and make your mark in open source, and earn a stipend from $3000 to $6600!
A brief introduction to WasmEdge
WasmEdge provides many unique features that are crucial for cloud computing and AI workloads. For example, it supports
- The complete WebAssembly spec as well as emerging specs such as threading, GC, and component model.
- Advanced networking (eg HTTP/S clients and servers, database connections, messaging queue connections)
- AI inference based on popular frameworks, such as
Tensorflow, OpenVino, PyTorch.
- WasmEdge now supports the mediapipe model through the previous LFX mentorship programs
- You can compile the llama2.c model to wasm and run it in WasmEdge
- High level language applications including JavaScript, Python, PHP, and Ruby. Developers can run full node.js applications.
- Extensive APIs to create Wasm apps in Rust , Go, and C/C++.
- Extensive SDKs to embed WasmEdge into existing applications written in other languages.
Furthermore, WasmEdge provides a flexible plug-in architecture that allows developers to add more functionalities to it and take advantage of its many integrations and distribution channels through extensive open source partnerships. Discover the full potential of WasmEdge with our technical highlights.
WasmEdge is supported by major developer tools and deployment platforms in the cloud native space. For example, WasmEdge is bundled and distributed with Docker Desktop reaching over 10 million developers. WasmEdge is the default WebAssembly runtime on Fedora, Red Hat Linux, and the OpenShift container platform.
Join us to build the future of the cloud-native technology stack
Projects for LFX Mentorship 2023-Sep-Nov
We have four mentee positions open this term. Each mentee will be expected to accomplish one of the following tasks.
For better collaboration, each potential mentee should complete the pretest first.
Create a Rust crate for YOLO model
Based on the WASI-NN plugins, WasmEdge is well-suited for running AI applications. WasmEdge already supports Pytorch, TensorFlow-lite, and OpenVINO model. However, AI applications are more than just the model. The application must pre-process data (such as images, audio and video) into TFLite / PyTorch formats, and convert the inference results back into application data in post-processing. That’s why we have this project.
A similar project for reference is the mediapipe-rs project, a previous LFX mentorship project with WasmEdge that provides a Rust SDK to build applications for the mediapipe AI models.
The expected outcome is a Rust SDK that implements the pre-processing and post-processing functions required for the YOLO models. The mentee should have a working knowledge of WebAssembly, Rust, OpenCV, and Tensorflow/Pytorch.
To apply for this project, you need to
- Submit your application for Create a Rust crate for YOLO model with your resume and cover letter by Aug 15th, 5:00 PM PDT.
- Finish pretest #1 and pretest #2 for this project by Aug 27, 5:00 PM PDT.
Please refer to the source GitHub issue for more information: https://github.com/WasmEdge/WasmEdge/issues/2690
Add matrix operations for opencvmini
OpenCV is one of the most famous and widely used libraries for computer vision. As WasmEdge is increasingly used as a lightweight runtime for image processing applications, we would like to make OpenCV accessible from WasmEdge apps. The best way to accomplish that is through WasmEdge plugins.
Good examples of WasmEdge plugins include the WASI-NN and rusttls plugins. The goal of this project is to create a OpenCV plugin to extend WasmEdge for image processing functions.
The expected outcome is to add matrix operations to the existing opencvmini plugin. The mentee should have a working knowledge of WebAssembly, Rust, C/C++ and OpenCV.
To apply for this project, you need to
- Submit your application for Add matrix operations for opencvmini with your resume and cover letter by Aug 15th, 5:00 PM PDT.
- Finish the pretest for this project by Aug 27, 5:00 PM PDT.
Please refer to the source GitHub issue for more information: https://github.com/WasmEdge/WasmEdge/issues/2680
Create a ffmpeg plugin
ffmpeg is used for processing multimedia files, which is powerful for converting, streaming, and playing audio and video files. To accomplish the inference task, the mediapipe-rs project use the ffmpeg library widely. Its approach to use ffmpeg in WasmEdge is to compile the ffmpeg library to the wasm bytecode and then build it together with the application binary, which works well. However, the performance is slower than the native library. A better way is to create a ffmpeg plugin to for WasmEdge, and allow Wasm applications to call native ffmpeg functions as host functions.
The expected outcome is a WasmEdge plugin for ffmpeg that is similar to the WasmEdge OpenCV-mini plugin and A Rust SDK for Wasm programs to access ffmpeg functions in the plugin. And then, implementing the new ffmpeg plugin in the mediapipe-rs project. The mentee should have a working knowledge of C/C++, ffmpeg, Rust and WebAssembly.
To apply for this project, you need to
- Submit your application for Create a ffmpeg plugin with your resume and cover letter by Aug 15th, 5:00 PM PDT.
- Finish the pretest #1 and pretest #2for this project by Aug 27, 5:00 PM PDT.
Please refer to the source GitHub issue for more information: https://github.com/WasmEdge/WasmEdge/issues/2689
Support AOT mode in proxy-wasm
proxy-wasm is a set of specifications of the low-level Application Binary Interface (ABI) and conventions to use between L4/L7 proxies (and/or other host environments) and their extensions delivered as WebAssembly modules. proxy-wasm is used in the Envoy, Istio, MOSN, and APISIX projects.
proxy-wasm already supports the WasmEdge runtime in the interpreter mode. However, for better performance, it is important to support WasmEdge’s AOT mode in proxy-wasm.
The expected outcome is the code and docs for supporting AoT mode in proxy-wasm. The mentee should have a working knowledge of the bazel build system, C/C++, and WebAssembly.
To apply for this project, you should
- Submit your application for Support AOT mode in proxy-wasm with your resume and cover letter by Aug 15th, 5:00 PM PDT.
- Finish the pretest for this project by Aug 27, 5:00 PM PDT.
Please refer to the source GitHub issue for more information: https://github.com/WasmEdge/WasmEdge/issues/2686
If you have any questions, welcome to join our Discord.