首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏人人都是架构师

    Go每日一库之132:wasm与tinygo

    TinyGO 使用 TinyGo 是一个将 Golang 带入微控制器和现代网络浏览器的项目。他们有一个基于 LLVM 编译的全新编译器。 使用 TinyGo,我们可以生成经过优化以在芯片中执行的微小库。 TinyGo 允许为微控制器编译 Golang 源代码,它也可以将 Go 代码编译为 Wasm。 TinyGo 是一个用于“小地方”的编译器,因此生成的文件要小得多。 查看如何安装tinygo:https://tinygo.org/getting-started/ 安装后,您可以使用 TinyGo 编译任何 Golang 代码。 编译的wasm模块,在加载的时候也要搭配tinygo版本的wasm_exec.js: cp "$(tinygo env TINYGOROOT)/targets/wasm_exec.js" .

    3.4K30编辑于 2023-09-30
  • 来自专栏人人都是架构师

    Go每日一库之132:wasm与tinygo

    TinyGO 使用 TinyGo 是一个将 Golang 带入微控制器和现代网络浏览器的项目。他们有一个基于 LLVM 编译的全新编译器。 使用 TinyGo,我们可以生成经过优化以在芯片中执行的微小库。 TinyGo 允许为微控制器编译 Golang 源代码,它也可以将 Go 代码编译为 Wasm。 TinyGo 是一个用于“小地方”的编译器,因此生成的文件要小得多。 查看如何安装tinygo:https://tinygo.org/getting-started/ 安装后,您可以使用 TinyGo 编译任何 Golang 代码。 编译的wasm模块,在加载的时候也要搭配tinygo版本的wasm_exec.js: cp "$(tinygo env TINYGOROOT)/targets/wasm_exec.js" .

    66100编辑于 2025-01-18
  • 来自专栏运维开发王义杰

    Go: 探索TinyGo在微控制器和IoT中发挥力量

    这使得TinyGo成为物联网(IoT)和嵌入式系统应用开发的理想选择。 TinyGo的特点包括: 高效编译:TinyGo针对小代码体积和降低内存使用进行了优化,适用于资源受限的环境。 微控制器支持:TinyGo支持在微控制器上运行Go代码,适合物联网和嵌入式系统的应用开发。 激进的优化:TinyGo采用激进的优化策略,减少函数调用开销并消除无用代码,产生精简高效的可执行文件。 Go标准库支持:TinyGo与Go的标准库和包生态系统兼容,允许开发者在他们的TinyGo项目中利用现有的Go库和工具。 在智能家居场景中,TinyGo可以用来控制照明、加热、冷却和安全系统等。在制造环境中,TinyGo的轻量化和高效代码使其适合在低成本微控制器上运行,为分布式控制系统部署多个节点提供了经济选择。

    89110编辑于 2024-01-17
  • 来自专栏商业模式策划

    佛萨奇2.0系统丨佛萨奇2.0智能合约系统开发上线版丨佛萨奇2.0开发现成源码功能

    使用TinyGo进行智能合约开发读者对象:本章节主要描述使用TinyGo进行ChainMaker合约编写的方法,主要面向于使用Go进行ChainMaker的合约开发的开发者。 为了最小化wasm文件尺寸,使用的是TinyGO编译器。注意:TinyGo 的功能在 ChainMaker V2.3.0 之后将不再更新。推荐使用 docker-go 进行 Golang 合约的开发。 环境依赖使用 TinyGo 开发用于 ChainMaker 的 wasm 合约,需要安装 TinyGo 编译器,同时注意以下几点:TinyGo对wasm的支持不太完善,对内存逃逸分析、GC等方面有不足之处 TinyGo引擎不支持fmt和strconv包。7.2. 编写TinyGo智能合约7.2.1. 集成的编译器是 TinyGo

    66130编辑于 2022-12-15
  • 来自专栏为了不折腾而去折腾的那些事

    使用 Docker 和 Golang 快速上手 WebAssembly

    使用 TinyGo 编译器进行编译。 (TinyGo 的代码示例,关于 TinyGo 的讨论,下文中有详细展开,再次不做更多描述) 想要使用 TinyGo,需要先调整之前的 JS Bridge 为 TinyGo 的版本。 cp "$(tinygo env TINYGOROOT)/targets/wasm_exec.js" . TinyGo 异常报错修复 在浏览器控制台中使用 TinyGo 版本的程序,可能会出现一些异常报错,比如会收到:“syscall/js.finalizeRef not implemented” 这类报错 /tinygo/releases/download/v0.21.0/tinygo_0.21.0_amd64.deb -o tinygo_0.21.0_amd64.deb && \ dpkg -i

    1.5K31发布于 2021-11-25
  • 来自专栏瓜农老梁

    Mesh9# 使用wasm上报envoy埋点信息

    构建方式 Step1 安装tinygo工具包 brew tap tinygo-org/tools Updating Homebrew... ==> Tapping tinygo-org/tools Cloning Step2 安装tinygo brew install tinygo // ... ==> Installing dependencies for tinygo-org/tools/tinygo: binaryen ==> Installing tinygo-org/tools/tinygo dependency: binaryen ==> Pouring binaryen--102.catalina.bottle.tar.gz /usr/local/Cellar/binaryen/102: 1,456 files, 38.4MB ==> Installing tinygo-org/tools/tinygo /usr/ local/Cellar/tinygo/0.21.0: 4,719 files, 362.4MB, built in 20 seconds ==> `brew cleanup` has not been

    1.5K40编辑于 2021-12-21
  • 来自专栏seth-shi的专栏

    [物联网] 树莓派Pico 点亮屏幕

    工欲善其事必先利其器, 所以首先要把我们的工具配置好 https://tinygo.org/docs/guides/ide-integration/ 在官网中查看对应的工具的配置 我用的是GoLand2021 , 所以按照官网的配置 安装插件 https://plugins.jetbrains.com/plugin/16915-tinygo (直接点击页面的安装, 获取去GoLand2021里File -> Settings -> Plugins -> Marketplace -> 输入 tinygo -> 点击安装即可) 安装好之后, 就会多出一个菜单 File -> Settings -> Go -> TinyGo 这里选择自己对应的开发板, 我这里选择pico 然后务必重启GoLand2021, 再次打开之后就会有针对pico的代码提示 TinyGo插件 接下来需要查看你对应的显示屏类型, 我买的是 /x/drivers" "tinygo.org/x/drivers/ssd1306" ) func main() { machine.I2C0.Configure(machine.I2CConfig

    65110编辑于 2023-12-18
  • 来自专栏seth-shi的专栏

    [物联网] 开篇入手-点亮小灯

    version go version go1.17.8 windows/amd64 Tiny Go 安装教程官方说的很详细了 选择匹配自己系统版本的, 比如我的是https://github.com/tinygo-org /tinygo/releases/download/v0.22.0/tinygo0.22.0.windows-amd64.zip 解压到任意目录, 然后将解压后的文件c:\tinygo\bin(假设解压到 C盘根目录) 加入系统环境变量 然后打开一个新的cmd窗口运行tinygo version, 看到输出版本, 就代表安装成功 tinygo version tinygo version 0.22.0 windows

    52310编辑于 2023-12-18
  • 来自专栏seth-shi的专栏

    [物联网] 开篇入手-点亮小灯

    version go version go1.17.8 windows/amd64 Tiny Go 安装教程官方说的很详细了 选择匹配自己系统版本的, 比如我的是https://github.com/tinygo-org /tinygo/releases/download/v0.22.0/tinygo0.22.0.windows-amd64.zip 解压到任意目录, 然后将解压后的文件c:\tinygo\bin(假设解压到 C盘根目录) 加入系统环境变量 然后打开一个新的cmd窗口运行tinygo version, 看到输出版本, 就代表安装成功 tinygo version tinygo version 0.22.0 windows

    54010编辑于 2023-12-18
  • 来自专栏k8s技术圈

    使用 WebAssembly 对 Istio 进行扩展

    等,目前应用比较多是 tinygotinygo 支持的包可以查看 https://tinygo.org/docs/reference/lang-support/stdlib/ 进行了解。 环境准备 首先安装 tinygo 工具,前往 https://github.com/tinygo-org/tinygo/releases/tag/v0.30.0 下载对应的版本,比如我们这里是 Linux 系统,可以使用下面的命令进行安装: # linux $ wget https://github.com/tinygo-org/tinygo/releases/download/v0.30.0/tinygo0.30.0 .linux-amd64.tar.gz $ tar -xvf tinygo0.30.0.linux-amd64.tar.gz $ export PATH=$PATH:~/tinygo/bin $ tinygo 部署插件 代码编写完成后,我们就可以使用 tinygo 来编译了,执行以下命令: tinygo build -o main.wasm -scheduler=none -target=wasi main.go

    1.5K10编辑于 2023-12-12
  • 来自专栏瓜农老梁

    Mesh7# wasm扩展Envoy使用详解

    第三种是重点发展方向通过其他语言编写filter,通过wasm编译运行嵌入在Envoy中运行,通过可移植的二进制指令实现,以下特性: 动态加载到Envoy中执行 无需修改Envoy代码容易维护 支持较多开发语言比如tinygo docs.solo.io/web-assembly-hub/latest/tutorial_code/build_tutorials/building_assemblyscript_filters/ 先试用tinygo What language do you wish to use for the filter: cpp rust assemblyscript ▸ tinygo 执行后: wasme init melon-filter✔ tinygo✔ istio:1.7.x, gloo:1.6.x, istio:1.8.x, istio:1.9.x 目录结构 -rw-r--r-- ) } return types.ActionContinue} 四、wasm构建Filter Filter构建 构建的过程耗时较长,多等一会 wasme build tinygo

    87730编辑于 2021-12-04
  • 来自专栏HelloGitHub

    GitHub 官方大动作频频「GitHub 热点速览 v.22.24」

    相较于 GitHub 官方的大动作,本周的开源项目就比较 Tiny,比如用在命令行等小地方的 Go 编译器 TinyGo、dalle-playground 则是知名项目 DALL-E 的在线试玩版,nginxconfig.io 本周特推 1.1 Go 编译器:TinyGo 本周 star 增长数:800+ TinyGo 一个用于微控制器、WebAssembly(Wasm)和命令行工具等小地方的 Go 编译器。 led.High() time.Sleep(time.Millisecond * 1000) } } GitHub 地址→https://github.com/tinygo-org /tinygo 1.2 文本生图:dalle-playground 本周 star 增长数:1,100+ New dalle-playground 是 DALL-E 的在线试玩版本,你可以通过输入一个文本描述来生成特定的语句图片

    73910编辑于 2022-09-26
  • Golang技术周刊 2026年第16周

    本周Go生态亮点:深入编译器内部机制的硬核探索、GitHub用eBPF提升部署安全、TinyGo将支持Go1.26、GitHub官方MCPServer1.0发布,以及多个实用工具更新。 简讯TinyGo即将发布大版本更新TinyGo团队表示下周二发布的新版本是个重大更新,支持Go1.26并完整支持ArduinoUNOQ。

    13600编辑于 2026-05-21
  • 来自专栏商业模式策划

    佛萨奇2.0原力元宇宙马蹄莲智能合约系统开发详情及原理

    TinyGo对wasm的支持不太完善,对内存逃逸分析、GC等方面有不足之处,比较容易造成栈溢出。 在开发合约时,应尽可能减少循环、内存申请等业务逻辑,使变量的栈内存地址在64K以内,要求tinygo version >= 0.17.0,推荐使用0.17.0。 TinyGo对导入的包支持有限,请参考:https://tinygo.org/lang-support/stdlib/,对列表中显示已支持的包,实际测试发现支持的并不完整,会发生一些错误,需要在实际开发过程中进行测试检验 TinyGo引擎不支持fmt和strconv包。1.4. 智能合约开发语言和虚拟机“长安链·ChainMaker”目前已经支持使用Golang、Rust、Solidity、TinyGo、C++进行智能合约开发,每种开发语言实现的合约由不同的虚拟机执行,在将合约发布到链上时通过

    1K20编辑于 2022-11-24
  • 来自专栏人人都是架构师

    Go WebAssembly 入门(一)

    本文使用原生go build,生成的wasm文件大约在1.4M左右,在生产环境中这个体积是很大的,优化go的wasm体积可以使用tinygo来build,同样的代码使用tinygo构建之后约为22K,甚至比 参考https://tinygo.org/ 本文介绍Go WebAssembly入门,前提已经安装Go 1.11及以上版本。

    89020编辑于 2023-09-10
  • 来自专栏架构驿站

    DeepFlow 是如何通过 Wasm Plugin 实现业务可观测性?

    需要注意的是,本项目中 Golang SDK 编译需要用到 TinyGo 工具链。 为什么需要 TinyGoTinyGo 是一个专门为嵌入式设备和 WebAssembly(Wasm)环境设计的 Go 编程语言工具链。 TinyGo 的目标是提供一个高效的 Go 编译器和运行时环境,以便在小型设备和嵌入式系统上运行 Go 程序。 相较于标准的 Go 编译器,TinyGo 优化了编译输出的大小和性能,以适应资源受限的环境。 3、编译为 Wasm Plugin # 建议 go 版本不低于1.21,tinygo 版本不低于 0.29 tinygo build -o wasm.wasm -target wasi -gc=precise

    2K103编辑于 2023-11-08
  • 来自专栏商业模式策划

    原力元宇宙MetaForce佛萨奇马蹄链开发详情版丨MetaForce佛萨奇2.0马蹄链智能合约系统开发稳定版

    在长安链上,用户可以通过高级语言(Golang、Rust、Solidity、TinyGo和C++)来编写智能合约,经过编译后,以二进制文件、WASM、EVM字节码的形式存储在区块链中,用户可以通过发送交易来触发执行智能合约中的代码 不同语言的SDK受限于语言本身特性和编译器的支撑能力,比如go语言支持函数同时返回多个数据,而tinygo编译器对垃圾回收支持存在缺陷,加上区块链系统本身为智能合约提供的运行内存大小受限、调用栈深度受限 目前ChainMaker已经支持的智能合约开发SDK包括Golang、Rust、Solidity、TinyGo和C++。3. 智能合约生命周期管理长安链的整体生命周期管理流程如下图所示:4.

    82220编辑于 2022-11-24
  • Golang技术周刊 2026年第17周

    本周Go生态亮点:TinyGo0.41支持Go1.26和ESP32无线网络,TypeScript7.0借Go实现编译器10倍提速,goroutine泄漏检测器提案获接受,Go1.27将弃macOS12支持 头条TinyGo0.41:支持Go1.26、ESP32无线网络等这个"为小型设备而生的Go编译器"迎来重大更新!

    8100编辑于 2026-05-29
  • 来自专栏Golang语言社区

    Golang语言情怀--第77期 区块链技术-长安链长安链基础知识介绍

    c++: emmake makerust: wasm-pack buildtinygo: tinygo build -no-debug -opt=s -o main.wasm -target wasm 功能清单说明 功能名称 描述 合约引擎 GASM、WASMER、WXVM、EVM、NATIVE、VM-DOCKER GO分别对应 tinygo、rust、 c++、 solidity、golang等合约语言 有向无环图 使交易可并行执行的方案 KV存储引擎 LevelDB、BadgerDB、MySQL 使用K、V格式存储数据 SQL合约存储引擎 MySQL,SQLite 使用结构化存储数据 SQL合约引擎 tinygo

    1.2K40编辑于 2022-06-07
  • 来自专栏CNCF

    开发 Wasm 协议插件指南

    创建插件工程 一、前置准备 安装 go 链接:https://golang.org/doc/install 安装 tinygo 链接:https://tinygo.org/getting-started /linux/ 提示:如果已有 go 不需要重复安装,tinygo 用于编译成 wasm 插件。 tinygo 也可以从 github 直接下载解压,把解压后的 bin 目录加入到 PATH 目录。

    1.2K20发布于 2021-05-07
领券