99 lines
2.9 KiB
Text
99 lines
2.9 KiB
Text
---
|
||
title: Wails v3 Architecture
|
||
description: Deep-dive diagrams and explanations of every moving part inside Wails v3
|
||
sidebar:
|
||
order: 1
|
||
---
|
||
|
||
|
||
Wails v3 is a **full-stack desktop framework** consisting of a Go runtime,
|
||
a JavaScript bridge, a task-driven tool-chain and a collection of templates that
|
||
let you ship native applications powered by modern web tech.
|
||
|
||
This page presents the *big picture* in four diagrams:
|
||
|
||
1. **Overall Architecture** – how every subsystem connects
|
||
2. **Runtime Flow** – what happens when JS calls Go and vice-versa
|
||
3. **Development vs Production** – two modes of the asset server
|
||
4. **Platform Implementations** – where OS-specific code lives
|
||
|
||
---
|
||
|
||
## 1 · Overall Architecture
|
||
|
||
**Wails v3 – High-Level Stack**
|
||
|
||
{/*
|
||
TODO: Fix D2 diagram generation (triple quotes for multi-line strings) or embed as image.
|
||
The previous D2 code block was causing MDX parsing errors in the build pipeline.
|
||
*/}
|
||
|
||
**[High-Level Stack Diagram Placeholder]**
|
||
|
||
---
|
||
|
||
## 2 · Runtime Call Flow
|
||
|
||
**Runtime – JavaScript ⇄ Go Calling Path**
|
||
|
||
{/*
|
||
TODO: Fix D2 diagram generation (triple quotes for multi-line strings) or embed as image.
|
||
The previous D2 code block was causing MDX parsing errors in the build pipeline.
|
||
*/}
|
||
|
||
**[Runtime Call Flow Diagram Placeholder]**
|
||
|
||
Key points:
|
||
|
||
* **No HTTP / IPC** – the bridge uses the native WebView’s in-memory channel
|
||
* **Method IDs** – deterministic FNV-hash enables O(1) lookup in Go
|
||
* **Promises** – errors propagate as rejections with stack & code
|
||
|
||
---
|
||
|
||
## 3 · Development vs Production Asset Flow
|
||
|
||
**Dev ↔ Prod Asset Server**
|
||
|
||
{/*
|
||
TODO: Fix D2 diagram generation (triple quotes for multi-line strings) or embed as image.
|
||
The previous D2 code block was causing MDX parsing errors in the build pipeline.
|
||
*/}
|
||
|
||
**[Asset Flow Diagram Placeholder]**
|
||
|
||
* In **dev** the server proxies unknown paths to the framework’s live-reload
|
||
server and serves static assets from disk.
|
||
* In **prod** the same API is backed by `go:embed`, producing a zero-dependency
|
||
binary.
|
||
|
||
---
|
||
|
||
## 4 · Platform-Specific Runtime Split
|
||
|
||
**Per-OS Runtime Files**
|
||
|
||
{/*
|
||
TODO: Fix D2 diagram generation (triple quotes for multi-line strings) or embed as image.
|
||
The previous D2 code block was causing MDX parsing errors in the build pipeline.
|
||
*/}
|
||
|
||
**[Platform Split Diagram Placeholder]**
|
||
|
||
Every feature follows this pattern:
|
||
|
||
1. **Common interface** in `pkg/application`
|
||
2. **Message processor** entry in `pkg/application/messageprocessor_*.go`
|
||
3. **Implementation** per OS under `internal/runtime/*.go` guarded by build tags
|
||
|
||
Missing functionality on an OS should return `ErrCapability` and register
|
||
availability via `internal/capabilities`.
|
||
|
||
---
|
||
|
||
## Summary
|
||
|
||
These diagrams outline **where the code lives**, **how data moves**, and
|
||
**which layers own which responsibilities**.
|
||
Keep them handy while exploring the detailed pages that follow – they are your
|
||
map to the Wails v3 source tree.
|