Wasmer 团队宣布推出 WCGI —— 即 WebAssembly + CGI,可使用 WebAssembly 进行服务器端开发。
WCGI 将 WebAssembly 的强大功能与 CGI 的易用性和多功能性结合在一起。通过 WCGI,开发者使用 WebAssembly 和 Wasmer 即可运行任何 CGI 应用程序。
CGI (Common Gateway Interface) 是一种 Web 服务器和应用程序之间的标准接口。它使得 Web 应用程序可以与 Web 服务器进行交互,生成动态的 Web 内容。WebAssembly 是新型的底层字节码格式,可以在浏览器中高效地执行。WCGI 将 WebAssembly 技术与 CGI 结合在一起,使得 Web 应用程序能够使用 WebAssembly 编写高效的代码,并与 Web 服务器进行通信。
具体来说,WCGI 通过将 WebAssembly 模块作为应用程序加载到 Web 服务器中,使得 Web 服务器可以使用 WebAssembly 解释器来运行这些模块。
下面是 WCGI 的部分亮点:
- 通过将现有的 CGI 应用程序(采用 AssemblyScript、C、C++、Go、PHP、Python 等语言编写)编译为 WASI (WebAssembly System Interface) 来进行复用
- 发送仅包含业务逻辑和静态资源的超小数据包,不依赖 HTTP 堆栈或笨重的 Docker 容器
- 完全在沙盒运行,WebAssembly 代码在沙盒中运行,每个请求使用一个独立的实例
Wasmer 团队用漏洞最多的 Wordpress 进行了举例,他们表示得益于沙盒机制,使用 WCGI 来运行 Wordpress 就不用再担心被攻击了。
下面是在本地使用 Wasmer 安装 Wordpress 的命令:
# Install wasmer beta 2
curl https://get.wasmer.io -sSfL | sh -s "v3.2.0-beta.2"
# Execute Wordpress
mkdir db
wasmer run-unstable wasmer/wcgi-wordpress-demo --mapdir=/db:db
由此可见,通过 WCGI,那些寻求在服务器端开发中实现更高效率、安全性和灵活性的开发者可以真正从这种方法中受益。
WCGI 代表了一种改进的服务器端开发方法,它集成了 WebAssembly 的灵活性、安全性和性能。这项创新技术有可能重塑 Serverless 应用程序的格局,为开发者的项目提供强大而通用的解决方案。
延伸阅读
- Docker 发布集成 WebAssembly 的首个技术预览版