[RFC] Drop Windows 7 support
We all know it's coming and at least as far as i am concerned it was planned for v3. Now that we're rushing v3 for gtk4 i'm not sure sure anymore. I'll still put this into the v3 tracking board for now but we can move it into v4 later if we prefer.
For community members, please share your opinions! If you're fine with dropping Windows 7 support a 👍 reaction is enough, if you want/need Windows 7 support, we'd appreciate hearing more about your use-case (plus a 👎 reaction) :)
I am in need of windows 7 support. But at the moment I can't even run version 2 of Tauri on Windows SP1. The build runs successfully, but when I run it on Windows 7 I always get an error: 0xc0000005. Is there a detailed instruction on how to properly make a build for Windows 7?
[✔] Environment
- OS: Windows 10.0.26100 x86_64 (X64)
✔ WebView2: 131.0.2903.146
✔ MSVC:
- Visual Studio Community 2019
- Visual Studio Enterprise 2022
✔ rustc: 1.86.0-nightly (bf1b174e7 2025-01-28)
✔ cargo: 1.86.0-nightly (cecde95c1 2025-01-24)
✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
✔ Rust toolchain: nightly-i686-pc-windows-msvc (default)
- node: 23.6.0
- pnpm: 9.15.4
- yarn: 1.22.22
- npm: 10.9.2
- bun: 1.2.0
[-] Packages
- tauri 🦀: 2.2.5
- tauri-build 🦀: 2.0.5
- wry 🦀: 0.48.1
- tao 🦀: 0.31.1
- tauri-cli 🦀: 2.2.5
- @tauri-apps/api : 2.2.0
- @tauri-apps/cli : 2.2.7
[-] Plugins
- tauri-plugin-opener 🦀: 2.2.5
- @tauri-apps/plugin-opener : 2.2.5
[-] App
- build-type: bundle
- CSP: unset
- frontendDist: ../dist
- devUrl: http://localhost:1420/
- framework: Vue.js
- bundler: Vite
@exbit You need to build the app with rust 1.77.2 (may require a few cargo update commands to make all crates build). If this doesn't help, please open a seperate issue or discussion.
Now that we're rushing v3 for gtk4 i'm not sure
Exactly what does that mean? I am a little bit out of the loop 😅
gtk3-rs was unmaintained for 2 years and nobody cared. Now there's an Advisory for an old unsoundness issue (that seemingly never caused any problems in tauri) and everyone loses their shit. A fix in gtk3-rs seems to be unlikely so we'll accelerate the switch to gtk4, minimizing the breaking changes between tauri v2 and v3 so hopefully everyone updates quickly so we can kill v2 asap afterwards. (gtk4 was always planned for tauri v3, just not this quickly - the distro support should be roughly the same as webkitgtk4.1 in v2). For further questions, please move to one of those issues https://github.com/tauri-apps/tauri/issues?q=sort%3Aupdated-desc%20is%3Aissue%20is%3Aopen%20gtk4 (trying my best to keep this one on-topic lol)
@FabianLars In the Tauri 2 documentation https://tauri.app/distribute/windows-installer/#supporting-windows-7 it says that there is support for Windows 7, but this is a lie. I spent a lot of time to check this. I downgraded rust to 1.77.2, but many Tauri 2 packages require rust version 1.7.8 minimum, and Windows 7 requires rust version 1.77.2 maximum. I tried to downgrade packages, but it leads to endless: cargo update -p xxxx x.x.x
I suggest you remove the information about Windows 7 support from the Tauri 2 documentation. Or write instructions how to build Tauri 2 on Windows 7.
Who has built Tauri 2 on Windows 7?
We use 1.77.2 in CI without major issues for example https://github.com/tauri-apps/tauri/blob/dev/.github/workflows/test-core.yml Once a while i talk with app devs about this as well 🤷
So far it was only one or two cargo update commands but if it's more for you'd i'd recommend to set your project's rust-version to 1.77.2 and use the new version aware resolver from cargo 1.84: https://blog.rust-lang.org/2025/01/09/Rust-1.84.0.html#cargo-considers-rust-versions-for-dependency-version-selection which we use for tauri v1's CI which is still stuck on 1.60 / 1.61 https://github.com/tauri-apps/tauri/pull/12401/files
Edit: Just tried it without the new resolver:
0) rustup default 1.77.2-msvc
pnpm create tauri-appcd project/src-tauricargo update -p cargo_metadata --precise 0.19.0cargo update -p cargo-platform --precise 0.1.8pnpm tauri dev(and other commands) works...
But yes, this is something we need to have in mind here as well, not only did Microsoft, Rust, WebView2 drop support for Windows 7, the crates are doing it as well so it will get harder and harder to maintain that MSRV.
I take it back. Thank you, about your instructions I got it working. I just joined your community and don't have enough experience. Maybe this should be added to the documentation?
I understand the reasons for not supporting older OS. But there are cases when you need to create software for already existing programs that support running on older OS. This is not my whim, but requirements. In this case we have to choose between available frameworks. Support for old OS is a headache, but it's also a plus for the framework.
@FabianLars What are the compromises to leave support for Windows 7? I don't need gtk4 support, for example.
What are the compromises to leave support for Windows 7?
Apart from requiring (maintenance) resources that we don't have? It forces us, or will force us, to hold back dependency updates (potentially some that fix CVEs etc) and having to keep compatibility with chromium/webview2 v109 (we're at 132 btw) also actively prevents us from implementing new features and fixing some bugs because not all things can be done in a backwards compatible way (for example switching the hosting mode)
It's 2025 and i'm starting to believe that people who use or target windows 7 don't deserve access to the latest frameworks / framework versions, especially one that has security as its number 1 priority. At some point you just have to let it die or live with the consequences of not doing so. But that's only my opinion which is why this is an open issue and not just a decision we make behind the scenes.
I might be wrong but according to a quick search on Google, Windows 7 hasn’t been supported with any updates since 2020?
Why should the vendor itself stop supporting their own product but tauri still needs to support it? I’m actually very surprised that tauri reaches back thus far. If that’s any reason for a lack of security or a block of features, support should immediately be stopped, in my opinion.
If it’s ok for anyone to still rely on an unmaintained operating system, it should certainly be ok to rely on an outdated tauri version and provide everyone else with today’s features and level of security that most recent browser versions have to offer.
Couldn't just agree more. The fact that not only windows 7, but also windows 8.1 is out of date. The os, windows 7, itself is too old as well (2009) and supporting such a legacy os would be quite hard too. Like a feature, WCO for webview2, won't be supported in windows 7/8.1 when it gets merged
I agree with the above. I believe the situation won't be the same with Windows 10 abandoned soon, but this will mean that Windows 7 will be 3 major versions behind the latest supported. At some point you have to live with your time, which also means upgrading your on to at least something recent. Otherwise as you said, for the Tauri team it will just require them more maintenance for a minority of people, prevent them from properly adding new features, etc. If people still want to use Tauri on Windows 7, go ahead! I think a guide or at least some explanation of maybe what's missing compared to the latest versions, limitations, etc would be great, but I don't think extensive support would be the way to go
Windows 10 will exist in some other forms till 2031 as far as I know in LTSC. So it won't be dropped that soon
Thank you very much, author. This win7 support really helped me a lot.
I build for Windows 7 in a classroom tool ExCaller. In my school (Jinhua NO.4 Middle School, Zhejiang Province, China), 80%+ computers are Windows 7. AFAIK, more than half of the computers in Chinese schools are still running Windows 7 🤷
If possible, I would like Tauri to keep the minimum feature set for Windows 7.
I build for Windows 7 in a classroom tool ExCaller. In my school (Jinhua NO.4 Middle School, Zhejiang Province, China), 80%+ computers are Windows 7. AFAIK, more than half of the computers in Chinese schools are still running Windows 7 🤷
If possible, I would like Tauri to keep the minimum feature set for Windows 7.
Tauri v2 will keep on supporting Windows 7. In short, the current situation can be compared to dropping Windows XP in 2018. Its quite hard to ensure security, keep MSRV favorable for Windowws7, pin dependencies to older version with possible? security exploits
12 downvotes but only 3 comments with only 1 really explaining their usecase? I'd like to highlight a part of my initial message:
if you want/need Windows 7 support, we'd appreciate hearing more about your use-case (plus a 👎 reaction) :)
supporting windows 7 is getting harder each day so we really have to know that it's worth it...
I for one have pretty much given up on it with issues like https://github.com/tauri-apps/plugins-workspace/issues/2493#issuecomment-2702034887 (which is a bit weird considering that i'm one of the main windows (7) maintainers)
As a plugin author, I always use the same MSRV as Tauri, but I'd love to set it to a more recent Rust version (v1.85 would be ideal). Support for Windows 7 means we're stuck on v1.77.2.
with the tier 3 *-win7-windows-msvc target we could raise the msrv while still supporting windows 7 but unfortunately some crates (most notably the freaking windows-rs crates?!) can't be compiled to that target.
i was always fighting against our msrv policy in v1 and thought it'd improve in v2 just with windows 7 support killing my dreams in the end :(
with the tier 3
*-win7-windows-msvctarget we could raise the msrv while still supporting windows 7 but unfortunately some crates (most notably the freaking windows-rs crates?!) can't be compiled to that target.i was always fighting against our msrv policy in v1 and thought it'd improve in v2 just with windows 7 support killing my dreams in the end :(
Actually, I'm able to to compile windows-rs on that tier 3 target in my experimental language (named leadlang). Sooo, actually I think what you're struggling with is the winapi crate not the windows.rs crate
This is my configuration there
[target.'cfg(windows)'.dependencies]
windows = { version = "0.60", features = [
"Win32_System_Com",
"Win32_System_Ole",
"Win32_System_Variant",
"Win32_System_SystemInformation",
"Win32_Foundation",
"Win32_Security",
"Win32_System_Wmi",
] }
winapi is not in the crate graph and the error even mentions the windows crate name + version - i'm still not 100% sure if it's really the crate's fault though but i don't care enough to look into it at the moment 🤷
(base) ➜ tauri-app pnpm tauri dev
[email protected] tauri /Users/qy/Desktop/learn/ai-teach/tauri-app tauri dev
failed to get cargo metadata: cargo metadata command exited with a non zero exit code: error: failed to parse manifest at /Users/xx/Desktop/Cargo.toml
Caused by:
can't find library tauri_app_lib, rename file to src/lib.rs or specify lib.path
Error failed to get cargo metadata: cargo metadata command exited with a non zero exit code: error: failed to parse manifest at `/Users/qy/Desktop/Cargo.toml`
Caused by:
can't find library tauri_app_lib, rename file to src/lib.rs or specify lib.path
ELIFECYCLE Command failed with exit code 1. @FabianLars
If that's not the most off-topic comment i've ever seen... @nianxiongdi please open a new issue, including the output of the tauri info command, the Cargo.toml file and a small explanation on what you're actually trying to do.
I want to build package win7 on my mac.
Cargo.toml:
[package]
name = "tauri-app"
version = "0.1.0"
description = "A Tauri App"
authors = ["you"]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
# The `_lib` suffix may seem redundant but it is necessary
# to make the lib name unique and wouldn't conflict with the bin name.
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
name = "tauri_app_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "2", features = [] }
tauri-plugin-opener = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
env:
[✔] Environment
- OS: Mac OS 11.7.10 x86_64 (X64)
✔ Xcode Command Line Tools: installed
✔ rustc: 1.77.2 (25ef9e3d8 2024-04-09)
✔ cargo: 1.77.2 (e52e36006 2024-03-26)
✔ rustup: 1.28.1 (f9edccde0 2025-03-05)
✔ Rust toolchain: 1.77.2-x86_64-apple-darwin (default)
- node: 20.11.0
- pnpm: 10.2.0
- yarn: 1.22.22
- npm: 10.2.4
[-] Packages
- tauri 🦀: 2
- tauri-build 🦀: No version detected
- wry 🦀: No version detected
- tao 🦀: No version detected
- @tauri-apps/api : 2.3.0
- @tauri-apps/cli : 2.3.1
[-] Plugins
- tauri-plugin-opener 🦀: 2
- @tauri-apps/plugin-opener : 2.2.6
[-] App
- build-type: bundle
- CSP: unset
- frontendDist: ../dist
- devUrl: http://localhost:1420/
- framework: Vue.js
- bundler: Vite
@FabianLars
Actually I really think you should reach out to the discord, cross compiling msvc is really hard from macos or linux
Or at least open a new separate issue as I asked to keep this here on-topic.
@FabianLars mark the comment as off topic I guess
Here’s a use case for using Tauri on Windows 7: we have a task to rewrite an old application built in Delphi, and one of the main challenges is supporting the existing user base still running on outdated operating systems (about 10% of our users fall into this category).
There’s currently zero chance of dropping support for them, though we might be able to do so later (possibly in a few years) when this percentage decreases further.
We’d really love to choose Tauri now (because it’s fantastic). We’re willing to settle for older versions of the language/libraries and stick with them, as long as there’s still a possibility to build and run the application. In the future, even if delayed, we’d like to have the option to update.
The discussion is about the next version of Tauri, Tauri v3 actually. Tauri v2 and Tauri v1 will still have win7 support. So, we can surely use Tauri for the stack
I think the v3 version can completely remove support for Windows 7. Focusing too much on the issues caused by stopping maintenance of the system may consume developers' energy, enthusiasm, and hinder potential innovation.
But this does not mean that Tauri has given up on Windows 7, at least v2 provides limited support and maintenance for Windows 7 (such as fixing fatal bugs), that is, there is an outdated but fully usable version of Tauri provided to Windows 7.
It's reasonable to adapt outdated versions of Tauri to outdated systems, isn't it?
The initial idea was to drop support of v2 more or less completely, keeping v3 basically the same as v2 just with gtk4 to resolve the security warnings whatever. That would of course mean that v2 keeps working fine. I think depending on this issue's outcome we'd be open to at least provide critical security updates (except those that triggered the move to v3 in the first place)