基于WebAssembly的在线代码编辑器Shift.js:无需后端,代码直接在浏览器上运行
最近,一个基于WebAssembly的在线代码编辑器引起了我的注意,它名为Shift.js。这个编辑器支持Python、Lua、Ruby等多种编程语言,并且可以在浏览器中直接运行代码,无需后端支持。这意味着除了首次加载WASM资源外,代码运行几乎不受网络延迟的影响,可以迅速显示出运行结果。此外,它还能生成分享链接,方便用户分享代码和查看运行效果。
Shift.js的网页地址是https://shift.js.org/,而源码地址则是https://github.com/hubenchang0515/shift。在网页上,你可以找到各种语言的示例代码,比如杨辉三角和斐波那契数列,这些都是通过Shift.js运行并展示结果的。
此外,Shift.js还提供了NPM包和CDN链接,使得任何开发者都可以轻松地在自己的项目中加载WASM资源,实现在线代码运行。例如,你可以通过以下HTML和JavaScript代码,在网页上直接运行Python代码:
<html>
<body>
<!-- 用于显示结果的 HTML 元素 -->
<pre id="output"></pre>
<script type="module">
// 加载 js 资源
import python from "https://shift.js.org/wasm/python.js";
import makeConfig from "https://shift.js.org/wasm/common.js";
// 要运行的代码
const code =
`import platform
import sys
print(sys.version)
print(platform.platform())
`;
// 回调函数:获取运行结果
const fn = (stdout) => document.querySelector("#output").innerText = stdout;
// 运行代码
python(makeConfig(code, fn));
</script>
</body>
</html>通过这种方式,开发者可以快速地在网页上实现代码的编写和运行,极大地提高了开发效率。
评论已关闭