Wails Framework

repository·master·Indexed 12 days ago

https://github.com/wailsapp/wails

A framework for building lightweight desktop applications by combining Go backends with web-based frontends (HTML/JS/CSS) bundled into a single executable. Includes support for v2 and v3 (Beta), featuring tools for live development, production builds, and Windows-specific GUI libraries like winc.

Tokens
363.8K
Snippets
1.1K
Records
1.6K
Agent score
96%

What's inside Wails

  1. What is Wails?

    master
    Wails is a framework for building desktop applications using Go and web technologies. Unlike traditional Go web applications that require a running web server and a separate browser, Wails bundles your Go code and your web frontend into a single binary (e.g., an .exe file). It uses native rendering mechanisms, meaning it does not bundle a heavy browser like Electron, but instead uses the operating system's existing webview.
  2. Overview of Wails features

    master

    Wails allows you to build desktop applications by bundling Go backend code and a web-based frontend into a single binary. Key features include:

    • Backend: Use standard Go.
    • Frontend: Use any web technology (HTML/JS/CSS) with built-in templates for rapid development.
    • Interoperability: Easily call Go methods from JavaScript with automatically generated TypeScript definitions for your Go structs and methods.
    • Native Experience: Access native Dialogs, Menus, and Dark/Light mode support. Supports modern translucency and "frosted window" effects.
    • Communication: Integrated eventing system between Go and JavaScript.
    • Efficiency: Uses the native rendering engine of the OS instead of embedding a full browser (unlike Electron).
    • Tooling: Robust CLI for project creation and building.
  3. Overview of EmailIt showcase application

    master

    EmailIt is a desktop application built using Wails v2 and Svelte. It functions as a markdown-based email sender featuring nine notepads, text manipulation scripts, and templates.

    Key capabilities include:

    • Scripts Terminal: Allows running EmailIt scripts against local system files.
    • External Integration: Scripts and templates can be triggered via the command line or through automation tools like Alfred, Keyboard Maestro, Dropzone, or PopClip.
    • Extensibility: Supports downloading scripts and themes directly from GitHub.
    • Platform: Distributed as a universal macOS application.
  4. Overview of Wails

    master
    Wails is a framework for building desktop applications using Go for the backend and modern Web technologies (HTML, JS, CSS) for the frontend. Unlike traditional methods that use an embedded web server, Wails bundles your Go code and web frontend into a single, lightweight binary. It uses the native rendering engine of the operating system instead of embedding a full browser (like Electron), resulting in smaller and more efficient applications.
  5. Introduction to Wails

    master

    Wails is a framework for building desktop applications using Go and web technologies. It serves as a lightweight, fast alternative to Electron by leveraging native rendering engines instead of embedding a full browser. This results in a smaller runtime and better performance.

    Key characteristics:

    • Native Rendering: Reuses the platform's native engine (e.g., Microsoft WebView2 on Windows).
    • Cross-Platform: Supports Windows, macOS, and Linux.
    • Native UI: Provides access to native menus, dialogs, theming, and translucency.
    • Store Compliant: Applications are compliant with Apple and Microsoft Stores.
  6. Overview of XenSQL

    master

    XenSQL is a fast, local-first SQL desktop workbench built using Go, Wails, and React. It is designed for developers who require a high-performance, native-feeling interface for managing multiple database types without cloud dependencies, telemetry, or account requirements.

    Key Capabilities

    • Multi-Database Support: Connect to PostgreSQL, MySQL, MariaDB, and SQLite.
    • Advanced SQL Editor: Features a Monaco-based editor with schema-aware autocomplete, multi-statement execution, and streaming results.
    • Data Management: Includes an interactive data viewer with JSON/XML/HTML cell editors, inline editing, and bulk operations.
    • Local-First Architecture: The application is fully offline and portable. All data is stored locally in a single XenSQL-data/ folder that resides with the application.
    • Exporting: Supports exporting data to CSV, JSON, Markdown, and SQL INSERT statements.
  7. Overview of EmailIt showcase project

    master
    EmailIt is a Wails v2 application built with Svelte that functions as a markdown-based email sender. It features nine notepads, text manipulation scripts, and templates. Users can interact with the application's scripts and templates via the command line or through automation tools like Alfred, Keyboard Maestro, Dropzone, or PopClip. It also supports downloading scripts and themes directly from GitHub. The project is distributed as a universal macOS application.
  8. Overview of the BulletinBoard showcase application

    master

    BulletinBoard is a versatile message board application designed for displaying static messages or dialogs to collect information from users for scripts. It features a TUI (Terminal User Interface) for creating new dialogs. The application is designed to run continuously in the background, appearing to show information as needed and then hiding away.

    Integration methods mentioned:

    • File Watching: A process can watch a local file and send its contents to BulletinBoard whenever the file changes.
    • Alfred Workflow: An Alfred workflow is available to send information to the program.
  9. Overview of Wails v3 Mobile Support

    master

    Wails v3 allows you to build iOS and Android apps using the same Go codebase and frontend used for desktop applications. There is no separate mobile project or code-sharing bridge required; the Go binary is compiled for the mobile target, and a native WebView renders your existing frontend.

    Platform Implementations

    • iOS: Uses WKWebView with a UIKit host. Assets are served via a custom wails:// scheme (no open ports). Requires macOS and Xcode.
    • Android: Uses Android WebView with WebViewAssetLoader. The Go code is compiled as libwails.so via the NDK. Works on macOS, Linux, and Windows.

    Core Architecture

    1. Go Backend: Services and logic compile for GOOS=ios and GOOS=android without changes.
    2. Frontend: Uses the same HTML/JS/CSS. The @wailsio/runtime package works identically across platforms.
    3. Asset Serving: Assets are served directly from Go memory (in-process), ensuring no open ports or loopback latency.
  10. Overview of Kira (AWS Desktop Client)

    master

    Kira is a native macOS desktop client designed for managing AWS infrastructure (ECS, RDS, S3, DynamoDB, etc.) through a single, keyboard-driven interface. It is built using Go, Wails, and React + TypeScript.

    Key capabilities include:

    • Multi-account AWS SSO: Single sign-on with easy switching between accounts and regions.
    • ECS Management: Browse clusters, services, and tasks; perform redeployments, scaling, and rollbacks; and use ECS Exec for interactive shells.
    • Database Operations: Run SQL against RDS, query DynamoDB, and connect to PostgreSQL, MySQL, and Redshift using secure SSH tunneling. Credentials are stored in the macOS Keychain.
    • S3 File Management: Navigate buckets, preview objects, and perform file operations (upload, download, rename, delete).
    • Observability: Tail and search CloudWatch Logs and monitor service metrics.
    • Extensibility: Supports custom .kext bundles that add action buttons powered by Go scripts.
    • Navigation: Features a global summon hotkey, a Cmd+K command palette, and kira:// deep linking.