Theseus is:
- A compiler that translates 32-bit Windows x86 code to Rust.
- An implementation of some of the win32 API used by the above.
Together, Theseus takes in a .exe file and turns it into a native binary that
doesn't depend on x86 or Windows.
I wrote a longer blog post motivating the project.
Theseus is very experimental and probably won't work on a program you try.
- tc/: "theseus compiler", exe to Rust generator
- exe/: (mostly) generated exe code for a few test executables, the output of tc
- runtime/: runtime x86 support for the generated programs
- win32/pe/: PE (
.exeformat) parser - win32/winapi/: Windows API implementation (e.g. kernel32, user32)
- win32/derive/: some Rust macros for winapi
The two halves of Theseus are:
- The
tccompiler uses the PE loader to load a.exefile and generate source code underexe/. - Building an exe relies on
runtimefor support for x86 operations andwin32for Windows API.