Anaconda 开发商最近发布了 PyScript,这是一个可以让开发者在 HTML 中混写 Python 代码的框架,有人将其称为 “Python 版 JSP”。事实上,PyScript 底层采用了 WebAssembly, 因为它基于 Pyodide 构建,Pyodide 由编译成 WebAssembly 的 CPython 3.8 解释器组成,允许在网页浏览器中运行 Python。

无独有偶,开发者采用相同的思路让 Go 也顺利在浏览器上运行。https://goscript.dev 网站支持在浏览器端直接运行 Go 代码,这是一个 Go playground,底层采用 Goscript,通过 WASM 实现。

Goscript 是 Go 语言规范的非官方实现,用于 Rust 项目的内嵌或封装,提供了更简单的方式封装和调用底层的 Rust 代码。就像 Lua 之于 Redis/WoW,或者 Python 之于 NumPy。

Goscript 包含六个项目:

  • parser 把源代码变成 AST,移植自 Go 官方代码。

  • type checker 基于 AST 做类型推倒和类型检查,也移植自 Go 官方代码。

  • codegen 基于 AST 和类型信息生成字节码。

  • vm 运行字节码。

  • std 官方库,移植自 Go 官方库。

  • engine 包含官方库的 native 部分,再加上简单封装。

Goscript 实现了 Go 的几乎所有特性(pre 1.18,因此不包括泛型),并移植了部分官方库,已通过的相关测试用例查看 https://github.com/oxfeeefeee/goscript/tree/master/engine/tests。

Goscript 项目代码:https://github.com/oxfeeefeee/goscript

END

想要了解更多相关的内容,欢迎扫描下方

继Python之后,Go也顺利在浏览器上运行相关推荐

  1. 「微信小程序」剖析(二):框架原理 | 在桌面浏览器上运行的

    在微信中是要这样调用的: 就会返回下面的结果: 看来这个名为wx-map的标签就是微信下的map标签,它是wx-page的children.然后让我们在WAWebview中搜索一下,就会发现一个很有意 ...

  2. 让 Android 应用在 Chrome 浏览器上运行

    让 Android 应用运行在电脑上,大部分人会使用 Android 模拟器,现存的模拟器品牌也有很多,有的甚至还专门为手机游戏做了一些优化.说白了模拟器就是把整个 Android 系统搬到了电脑上, ...

  3. java项目运行在浏览器_在 Java 程序中,能在 WWW 浏览器上运行的是 程序。_学小易找答案...

    [简答题]已知:如图, AD 是△ ABC 的角平分线, DE//AC, 交 AB 于点 E , DF//AB ,交 AC 于点 F ,求证: AD ⊥ EF. [简答题]Java语言具有较好的安全性 ...

  4. 关于applet小程序在浏览器上运行的备注

    由于初学java,就去图书馆借了两本书,然后就照着书上流程一步步开始写java代码.我在D盘目录下AppletTest文件夹下建立了一个RollingMessage.txt文件,编辑代码如下 impo ...

  5. 爬虫相关python+selenium在已经打开的浏览器上操作

    cmd运行 chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile&quo ...

  6. termux使用教程python手机_安装Termux的手机上运行Python

    原博文 2018-10-15 12:23 − 1. Termux 终端 Android是一个单用户图形化系统,功能主要以应用的形式呈现给用户,因此在系统上我们无法直接获取终端,更是无法直接调用系统自带 ...

  7. python转exe可执行程序在其他系统上运行时出现的错误

    说明:python转exe在win10上执行,无法运行在win7系统上 一.win7旗舰版x64 运行错误提示 解决办法 下载api-ms-win-crt-runtime-l1-1-0.dll复制到系 ...

  8. 手机写python脚本_如何让自己在电脑上写的python脚本在手机或安卓系统上运行呢??...

    2017.12.9更新 如果单纯手机上使用python的话,安卓更推荐Pydroid3/2,可以直接在google play下载.可免费使用,各种模块如numpy,matplotlib,pandas, ...

  9. python五子棋游戏15*15_在STM32上运行五子棋小游戏(15x15)

    本程序算法资料来自下面网站. ----https://www.cnblogs.com/buptzym/archive/2012/06/20/2556052.html---- 先定义一个数组 用于存储整 ...

  10. STM32全国研讨会:且看Python 和OpenMV如何在 STM32 MCU上运行AI 2020-09-15 07:10 预计 24 分钟读完

    What is the state of machine learning at the edge today? What tools can help engineers collect data ...

最新文章

  1. R语言ggplot2可视化:ggplot2可视化散点图并使用geom_mark_ellipse函数在数据簇或数据分组的数据点周围添加椭圆(ellipse)进行注释(对椭圆包围的区域进行着色为阴影区域)
  2. 贾珈:自然语言处理中9个不可不知的研究热点(附视频)
  3. 卷积核个数和输入输出通道数的关系
  4. 如何为javascript代码编写注释以支持智能感知
  5. 【PAT乙】1069 微博转发抽奖 (20分) set
  6. webuploader项目中多图片上传实例
  7. 安卓一键清理内存_教大家安卓怎么清理内存-装修攻略
  8. gps数据解析程序c语言,GPS数据采集分析要点
  9. 腾讯云短信功能初步使用
  10. word论文公式加点
  11. Altium-Designer6.9安装报错Application Error
  12. TortoiseSVN—Repo-browser,打开你要比较的两个版本所在的地址,选择一个版本做为比较的基础(单击右键—选择mark for comparison),再选择另外一个版本(单击右键—选
  13. Laravel Eloquent:API资源
  14. App Store风靡!当下热门应用商店简析
  15. Matlab计算矩阵频率分布直方图
  16. 附录10-项目黑马面面
  17. PMP-项目经理角色
  18. uni-app上传图片并添加水印
  19. libusb android 编译,Android如何对libusb进行编译和使用
  20. 第9章 慕课网日志实战

热门文章

  1. ts语音自建服务器,用轻量搭建自己的语音聊天服务器
  2. SqlServer2005 provider: TCP 提供程序, error: 0 - 由于目标计算机积极拒绝,无法连接。) (Microsoft SQL Server,错误: 10061)问题解决
  3. The server returned the following error: 无法与服务器建立连接(0x80072EFD)
  4. 配置错误 访问被拒绝 解决方案
  5. 智能手表是java的_PerfDog性能狗实测智能手表性能
  6. delphi的时间Ttime,Tdatetime的信息
  7. Eclipse下载与安装教程 2020
  8. RSA2048 public key der格式结构
  9. pb获取当月最后一天
  10. 汽车尾气污染检测 尾气烟雾检测