“开源之夏(英文简称 OSPP)”是中科院软件所“开源软件供应链点亮计划”指导下的系列暑期活动,由软件所与 openEuler 社区共同主办。
开源之夏是一项主要面向高校学生的暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。
学生可自主选择感兴趣的项目进行申请,并在中选后获得该软件资深维护者(社区导师)亲自指导的机会。根据项目的难易程度和完成情况,参与者还将获取开源之夏活动奖金和结项证书。
本次是 WasmEdge 社区第一次参与开源之夏,欢迎对 WebAssembly 感兴趣的朋友报名参加。
WasmEdge 是由 Second State 发起的开源项目。2021年5月,WasmEdge 成为 CNCF 沙箱项目,目前有 3000+ stars,近一百个 commit 过代码的社区贡献者。
WasmEdge 是一个轻量级、高性能和可扩展的 WebAssembly Runtime。WasmEdge 被应用在Jamstack 应用程序、边缘云上的微服务、Serverless SaaS API、嵌入式函数、智能合约和智能设备上。
更多关于 WasmEdge 的内容可以访问:https://wasmedge.org/
项目一:为 WasmEdge 添加 MySQL database driver
背景介绍:
随着 WebAssembly 越来越多地被用作服务端应用程序的 Runtime,WebAssembly 应用程序(例如 serverless 函数和嵌入式函数)需要访问关系数据库。这可以通过与数据库服务器的 socket 连接来完成。但是,WebAssembly 还不支持 POSIX socket API。这意味着 MySQL 的标准 Rust(或 JavaScript)连接器将无法在 WebAssembly 中正确运行。
WasmEdge 为 WebAssembly 提供了自己的 networking socket 扩展。使用 WasmEdge Rust 和 JavaScript SDK,开发者可以编写高性能和非阻塞 I/O 应用程序,包括数据库连接器。用于 networking socket 的 WasmEdge Rust SDK 类似于 Tokio 的低级 API。
在这个项目中,参与者将利用 WasmEdge Rust SDK 实现 MySQL 数据库的连接器。最终的交付物应该类似于 MySQL 的官方 Rust 连接器。
Mentor:Michael Yuan
难度:进阶/Advanced
项目详情:https://summer-ospp.ac.cn/#/org/prodetail/228830160
对应的 GitHub issue: https://github.com/WasmEdge/WasmEdge/issues/1402
项目二:为 WasmEdge Java SDK 添加 Async 特性
背景介绍:
异步执行是大部分现代运行时都支持的功能,WamEdge 也提供了异步执行 Wasm 模块的特性。Java 本身也提供了对异步操作的一些抽象,本项目需要结合两部分特性来实现 Wasmedge Java SDK Async 特性,包含:
- 熟悉 WasmEdge 的异步API
- 抽象出一套在 Java SDK 层面的异步API
- 基于 JNI 实现这些 API
Mentor: Kenvi Zhu
难度:普通/ Normal
项目详情:https://summer-ospp.ac.cn/#/org/prodetail/228830221
对应的 GitHub issue: https://github.com/WasmEdge/WasmEdge/issues/1415
欢迎对上述两个项目感兴趣的同学加入 WasmEdge 社区的开源之夏项目交流群,与导师沟通交流。
如有疑问,可以扫码进群咨询。
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除