开发者生态
evening
Show HN:Shirei,原生 Go 中的跨平台 GUI 框架
2026-07-12
1 阅读
约5分钟阅读
hsn915
字号:
Shirei Shirei 是 Go 的跨平台 GUI 框架。您可以使用 Go 编写 UI,而不是 HTML 和 Javascript。真正的跨平台:相同的代码库为 MacOS、Windows 和 Linux 生成外观相同的程序。也恰好是为 Linux 生成不需要任何依赖项的独立 GUI 程序的最简单方法。 ※“Shirei”源自“Simple Layout”的日语发音: shimpuru・reiaauto→shireei 动机 经验告诉我们,立即模式 API 是编写 GUI 应用程序的唯一明智的方法。不幸的是,没有好的库或框架可以正常工作。其中一些需要您实现自己的后端,其中一些没有像样的跨平台故事,其中一些没有对非拉丁文本的适当支持。对于“立即模式”来说最重要的是什么? UI 是否每帧都会渲染所有内容?不。您可以通过仅(或大部分)基于数据描述每一帧的外观来构建 UI。这就是 React 获胜的原因:不需要自己维护 UI 小部件,不需要跟踪它们的状态来更新它们。你只需说“此时,我想要一个按钮,我想要它上面的标签这样说,当它被点击时,我想做这个那个”。这个按钮以前存在过吗?当您不再需要它时,它会发生什么?你永远不必回答这些问题。这是 React 最好的部分,也是“立即模式”的全部内容。如果你有一个 API 只能让你“绘制”东西,但你还要负责维护你“绘制”的所有“东西”的状态,那就不好了。特点: Native:真正的可执行程序,而不是网页。典型的二进制大小约 10MB。真正意义上的立即模式 API:您永远不需要维护 UI 小部件或将数据与小部件状态同步。开箱即用:不仅仅是一个布局引擎,而且是一个成熟的框架,您可以立即开始使用,无需任何样板。全面支持国际文本:复杂的形状、双向布局、访问系统字体、东亚语言的 IME 支持(输入法编辑器)。灵活的布局和样式:网络的好处之一是您在如何安排 UI 方面有很大的灵活性;您不仅限于一组标准的小部件和容器。你可以自己做。易于学习的 API,适用于人类和人工智能代理。如果您有想要制作但没有时间的小程序的想法,请尝试要求最新的 AI 引擎使用 shirei 来构建它。你会惊讶地发现他们能够很好地使用它。 example/ 下有几个示例程序 — 如果您只看一个,请从 haystack 开始。入门 将其复制到新文件夹中的 main.go 中: package main import ( "fmt" app "go.hasen.dev/shirei/app" . "go.hasen.dev/shirei" . "go.hasen.dev/shirei/widgets" ) func main () { app . SetupWindow("我的应用程序", 300, 100) 应用程序。 Run ( RootView ) } var count int func RootView () { Container ( Attrs ( Viewport , Background ( 220 , 10 , 97 , 1 ) ), func () { Container ( Attrs ( Row , CrossMid , Pad ( 20 ) , Gap ( 10 ) ), func () { Label ( fmt . Sprintf ( "计数器: %d" , count )) if Button ( SymIPlus , "Increment" ) { count ++ } }) }) } 然后输入: $ go mod init main $ go mod tidy $ go run 。学习教程 音频容器标识 拖放
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱