Go-Nest:基于 HTMX 的安全且可扩展的 Web 框架


Go-NEST 提供了一个 Go 应用程序框架,可轻松开发 Web 应用程序,类似于 Visual Basic 或 Delphi中的框架。

Go-Nest 是一个 Web 应用程序框架,旨在构建可扩展的 UI,重点关注安全性、可访问性和国际化。它提供:

  • ✅针对多语言应用程序的本地化文本和值处理
  • ✅内置 WCAG 实施以提高可访问性
  • ✅无状态架构,实现无缝负载均衡器兼容性
  • ✅按照欧盟 GDPR 的要求进行安全设计,缓解许多 CWE 和 OWASP 漏洞
  • ✅基于 HTMX 的组件化方法,降低常见的网络安全风险

该项目原名为 Go-HTMX,由于命名冲突, 现已更名为Go-Nest 。


该框架定义了类型安全的 UI 组件,不仅可以生成 HTML,还包括事件处理。

以下示例实现了面板上带有交互按钮的网页:

func myWebPage() nest.UI {
  return &nest.Panel{
    Children: []nest.UI{
      &nest.Heading1{Text: "This is a heading"},
      &nest.Button{
        Caption:
"Click me",
        OnClick: func(button *nest.Button, ctx *nest.Context) error {
          button.Caption=
"Button was clicked"
          return nil
        },
      },
    },
  }
}

该框架将负责为每个组件提供 ID、运行时客户端(!)状态管理和使用 HTMX 的 UI 更新。
还提供 Templ 兼容接口。

该框架的优点包括:

  • 这可能是创建商业用途的 Web 应用程序最简单的方法。
  • 将 UI 部分的所有代码放在一个地方。每个网页只有一个 http 路由。
  • 一切都默认使用客户端状态,非常适合负载平衡、热重载、故障转移、IT 安全等。
  • 类型安全。
  • 所有内容均在 Go 源代码中。无需额外的编译步骤。
  • 由于使用了 HTMX,性能非常出色。
  • 如果它编译通过,那么 UI 就可能起作用。