---
sidebar_position: 1
---

# 简介

Wails 是一个可让您使用 Go 和 Web 技术编写桌面应用的项目。

将它看作为 Go 的快并且轻量的 Electron 替代品。 您可以使用 Go 的灵活性和强大功能，结合丰富的现代前端，轻松的构建应用程序。

### Features

- Native Menus, Dialogs, Theming and Translucency
- Windows, macOS and linux support
- Built in templates for Svelte, React, Preact, Vue, Lit and Vanilla JS
- Easily call Go methods from Javascript
- Automatic Go struct to Typescript model generation
- No CGO or external DLLs required on Windows
- Live development mode using the power of [Vite](https://vite.net/)
- Powerful CLI to easily Create, Build and Package applications
- A rich [runtime library](/docs/next/reference/runtime)
- Applications built with Wails are Apple & Microsoft Store compliant


这是 [varly](https://varly.app) - 一个使用 Wails 编写的 MacOS 和 Windows 桌面应用。 它不仅看起来很强，它使用原生菜单和半透明 - 你希望从现代原生应用中得到的一切

<p class="text--center">
  <a href="https://varly.app/">
    <img src={require("@site/static/img/varly.webp").default} width="75%" />
  </a>
</p>

### 快速启动模板

Wails 带有许多预配置的模板，可让您快速启动和运行应用程序。 有以下框架的模板：Svelte、React、Vue、Preact、Lit 和 Vanilla。 每个模板都有 Javascript 和 Typescript 版本。

### 原生元素

Wails 使用专门构建的库来处理窗口、菜单、对话框等原生元素，因此您可以构建美观、功能丰富的桌面应用程序。

**它不嵌入浏览器**，因此性能高。 相反，它使用平台的原生渲染引擎。 在 Windows 上，是基于 Chromium 构建的新 Microsoft Webview2 库。

### Go 和 Javascript 互操作

Wails 自动使您的 Go 方法可用于 Javascript，因此您可以从前端按名称调用它们！ It even generates Typescript models for the structs used by your Go methods, so you can pass the same data structures between Go and Javascript.

### 运行时库

当检测到您的应用程序资源发生更改时，您正在运行的应用程序将“重新加载”，几乎立即反馈您的更改。

### 实时开发体验

#### 自动重新构建

当您在“开发”模式下运行您的应用程序时，Wails 会将您的应用程序构建为原生桌面应用程序，但会从磁盘读取您的资源。 它将检测您的 Go 代码的任何更改并自动重新构建和重新启动您的应用程序。

#### 自动重新加载

当检测到对您的应用程序资产的更改时，您正在运行的应用程序将“重新加载”，几乎立即反映您的更改

#### 在浏览器中开发您的应用程序

如果您更喜欢在浏览器中调试和开发，那么 Wails 可以满足您的需求。 正在运行的应用程序还有一个网络服务器，它将在连接到它的任何浏览器中运行您的应用程序。 当您的资源在磁盘上发生变化时，它会刷新。

### 可用于生产的原生二进制文件

当您准备好完成应用程序的最终构建时，CLI 会将其编译为单个可执行文件，并将所有资源打包到其中。 在 Windows 和 MacOS 上，可以创建用于分发的原生包。 使用打包工具后生成的资源（图标、info.plist、清单文件等）是您项目的一部分，可以自定义，让您完全控制应用程序的构建方式。

### 工具

Wails CLI 提供了一种简单的方法来生成、构建和打包您的应用程序。 它将完成创建图标的繁重工作，使用最佳设置编译您的应用程序，并提供可分发的、可用于生产的二进制文件。 可以从许多入门模板中进行选择，以快速启动和运行！
