System Dependencies Overview
Learn about the system-level dependencies required to build Tauri v2 apps on Linux, macOS, and Windows, and why each platform needs specific libraries and tools
Every Tauri application is a native binary that links against libraries provided by the operating system. Before you can compile and run a Tauri project, your development machine must have a few platform‑specific tools and libraries installed. This page explains what those dependencies are, why they exist, and how they differ across Linux, macOS, and Windows. The detailed step‑by‑step installation guides for each operating system are covered in the subsections that follow.
What Are System Dependencies?
System dependencies are software components that live outside your project’s code but are required to turn that code into a working application. In the context of Tauri, they fall into three categories:
- Web rendering libraries – Tauri embeds a system‑provided webview (WebKitGTK on Linux, WKWebView on macOS, WebView2 on Windows) instead of bundling a full browser engine. Your system must supply the matching development files.
- Build toolchains – The Rust compiler needs a C/C++ compiler and related tools to compile native code. On Linux this means
build-essentialor equivalent; on macOS it means Xcode Command Line Tools; on Windows it means the Microsoft C++ Build Tools. - Auxiliary system libraries – Features like system trays, notifications, and file dialogs rely on platform‑specific libraries such as
libappindicator(Linux) or the Windows SDK.
None of these dependencies are needed by the people who run your finished app. They are a one‑time setup cost for the developer machine.
A Quick Look at Each Platform
The exact set of dependencies depends on your operating system. The following tabs show a high‑level summary of the most critical items for each platform.
Core packages (names vary by distribution):
libwebkit2gtk-4.1-dev— WebView runtime (4.1 series for Tauri v2)build-essentialorbase-devel— C compiler and standard toolslibssl-dev/openssl— TLS and cryptography supportlibayatana-appindicator3-dev— system tray icon supportlibrsvg2-dev— SVG rendering for certain UI elements
A C compiler, curl, wget, and file are also required on most distributions. The full list for Debian, Arch, Fedora, Gentoo, openSUSE, Alpine, and NixOS appears in the Linux Setup section.
Skipping Dependencies Causes Build Errors:
If any of these system dependencies are missing, the first cargo build (or
npm run tauri dev) will fail with linker errors or missing header file
messages. The error output usually names the missing library — for example,
cannot find -lwebkit2gtk-4.1 on Linux, or a complaint about windows.h on
Windows. Install the required package and retry; the build should proceed
normally.
Supported Operating Systems
Tauri v2 officially supports the following environments for development and as build targets (for a complete list of hardware and OS requirements, see Supported Operating Systems). Older versions may work but are not actively tested.
| Platform | Minimum Version | Notes |
|---|---|---|
| Linux | Varies by distribution | The main requirement is WebKitGTK 4.1. Distributions with older package repositories may need backports or alternative installation methods. |
| macOS | Catalina (10.15) and later | Xcode 12 or later is recommended. For iOS builds, Xcode 14+ and a physical device or simulator are required. |
| Windows | Windows 7 and later | Windows 7 requires the WebView2 runtime to be installed manually. The MSVC build tools officially support Windows 10+ but can target Windows 7. |
Windows Subsystem for Linux (WSL) users should follow the Linux instructions inside their WSL environment. X11 forwarding or a similar mechanism is needed to run the graphical application.
Why Tauri Doesn’t Bundle a Web Engine
Frameworks like Electron bundle an entire Chromium browser. That guarantees identical rendering everywhere but adds roughly 100 MB to every app. Tauri takes a different approach: it uses the operating system’s own webview. On Linux that’s WebKitGTK, on macOS it’s WKWebView, and on Windows it’s WebView2 (which is based on Edge/Chromium). The result is a drastically smaller application, but it does mean that the development machine must have the corresponding development headers and libraries to link against.
End‑Users Are Not Affected:
The system dependencies described here are only needed while you are building
the application. When users install your final .deb, .dmg, .msi, or
AppImage, the required runtime components are either already present on their
system (like WebView2 on Windows 11) or are declared as package dependencies
and installed automatically. Your users never need to manually install SDKs or
build tools.
Checking What’s Already Installed
Before you follow any setup guide, it’s useful to know what you already have.
- On Windows — Open a PowerShell terminal and run
winget listor check “Apps & features” for “Microsoft Visual C++ Redistributable” and “Microsoft Edge WebView2 Runtime.” - On macOS — Run
xcode-select -pto see if Command Line Tools are already installed. A path like/Library/Developer/CommandLineToolsmeans they are. - On Linux — Use your package manager to query specific packages, for example
dpkg -l | grep webkit2gtkon Debian/Ubuntu, orpacman -Q | grep webkit2gtkon Arch.
You’re on the Right Track:
If you can open a terminal and the commands cc --version, git --version,
and rustc --version all print version numbers, your build toolchain
foundation is already in place. The remaining step is to install the
platform‑specific libraries using the guide for your operating system.
A Word About Mobile Targets
Tauri v2 supports Android and iOS from the same Rust core. The system dependencies for mobile development are additional layers on top of the desktop prerequisites. For Android you’ll need Android Studio, the NDK, and certain rustup targets. For iOS you’ll need Xcode (full version) and CocoaPods. Those requirements are outside the scope of this system dependencies overview; they are covered in the mobile configuration chapter after you have the core environment ready.
Supported Operating Systems
A detailed overview of operating systems supported for Tauri 2 development, including version requirements, platform-specific dependencies, and how to verify your setup.
Linux Setup
Install the system dependencies required for Tauri v2 development on popular Linux distributions
macOS Setup
Install the system dependencies required for Tauri v2 development on macOS
Windows Setup
Install and configure the required system dependencies for Tauri development on Windows, including C++ Build Tools, WebView2 Runtime, and VBSCRIPT for MSI installers