S
seri.tools
seri.tools · Personal blog · on HN since 2020
The author of Rust9x writes about compiling Rust for Windows 95, 98 and NT, and about legacy Windows debugging.
What HN saysHN commenters enjoy these retro-compatibility efforts and link the Rust9x posts when discussing Rust on old Windows versions.
15HN people shared it
6linked it in comments
11stories submitted
461story points
6 months agolast shared
2020people per year2026
Most-shared posts
- 1Rust9x: Compile Rust code for Windows 95, NT and above7 people · 192 points · first shared 2022 · 47 comments on HN
- 2Compiling Rust binaries for Windows 98 SE and more: a journey5 people · 24 points · first shared 2020 · discussion on HN
- 3Rust9x update: Rust 1.93.0-beta2 people · 4 points · first shared 2026 · discussion on HN
- 4Why Castrol Honda Superbike crashes on (most) modern systems1 people · 176 points · first shared 2025 · 35 comments on HN
- 5Show HN: Rust9x 1.76-beta – Rust on Windows 95+1 people · 53 points · first shared 2023 · 7 comments on HN
- 6Rust9x update: Rust 1.84.0-beta1 people · 12 points · first shared 2024 · 1 comments on HN
What HN people wrote when they linked it
estebank · 2022-03-29
I love these kind of anachronistic efforts, like the one in the article or the one getting Rust to run on Win98[1] from around the same time.
[1]: https://seri.tools/blog/compiling-rust-for-legacy-windows/
jeroenhd · 2023-07-10
I've played around with old Visual Studio versions in virtual machines and as much as I like the older Windows aesthetic, dev tools sure have come a long way.
For those interested in writing code for old systems using modern tools, you can write Rust code for Windows versions all the way back to Windows 95/NT 3.51: https://seri.tools/blog/announcing-rust9x/
zozbot234 · 2022-09-07
Rust has already been made to compile stuff for 1995 systems, if only as an experiment: https://seri.tools/blog/announcing-rust9x/ / https://news.ycombinator.com/item?id=31112273
willglynn · 2026-05-07
abbeyj · 2026-01-16
It depends on what you want. If you want to install an old copy of Visual Studio from 20 years ago then you should be able to write a program and compile it and have that work on XP. But that comes with limitations. You're not going to be able to use even C++11 and will be stuck with C++03, or maybe even C++98. If that's acceptable to you then it can work. But if you want to compile something that somebody else wrote or want to use some library that somebody else wrote, it probably won't work in that environment.
Or you could install and old copy of Cygwin or MinGW.
Do you want to run a modern Visual Studio and target XP? Maybe you can make that work if you install an old platform SDK and set WINVER and _WIN32_VERSION and work around all the warnings and compatibility problems that you'll run into. It is fighting an uphill battle and it will continue to get worse with each new version of VS that you want use.
For rust there is Rust9x https://seri.tools/blog/announcing-rust9x/. But I think this is the effort of handful of people. It is behind the upstream rust and it could go away at any time. If you want to write a toy program in Rust then it is fine, but if you want something that's going to be supported long-term you're rolling the dice.
Python 3.4.4 is the last version of Python that will run on Windows XP. That's 10 years old and many things on PyPI now require newer versions of Python so you'd be stuck with old, unsupported versions of those modules,…
yjftsjthsd-h · 2024-10-11
Given that the author explicitly is targeting Windows 2000 as a starting point with the goal of reaching Windows 95(!) -
> While I'm currently getting things running on Windows 2000 Professional SP4, I'd like to get this working on Windows 95 and 98 too. To that end, I'll be using Visual Studio.NET 2003, which was the last version to support Windows 95. I'm also building everything in Windows 2000, but that part's optional.
- I would say Go is completely irrelevant, since AFAICT as of https://github.com/golang/go/issues/57003 it only supports... Windows 8+? It's actually really hard to find an official answer to what platform versions are supported, but I think we can rule out this particular usecase. (EDIT3: Found it - https://go.dev/wiki/Windows only lists back to Go 1.10.8 supporting XP and says only 10+ is supported now.)
---
EDIT: Now for all that at least the official Go compiler is out, Rust, somehow!, is in the running with https://seri.tools/blog/announcing-rust9x/ , which even explicitly calls out:
> TLS is supported via rustls starting from Windows XP, as its dependency ring needs RtlGenRandom. I haven't looked into it too much, but from what I could tell, this should be the only additional API dependency, so by falling back to another way of getting randomness (probably compromising security in the process :)) this should work all the way down to Windows 95/NT 4.0 as well.
... so that's apparently a way to get "a modern language" that actually can do the…