Piston, a prototype video game engine written in Rust
github.com
github.com
I suspect that any integration would be gradual, with some parts written in C++ and some written in Rust. This is the path we're following with Servo, after all.
And what's the use of python in the code base?
The Python is used for a pile of code generation, although, AIUI, the Servo team are using more and more Rust macros.
[1]: most of these directories contain submodules pointing to Rust wrappers around other libraries: https://github.com/mozilla/servo/tree/master/src/support
[2]: https://github.com/mozilla/servo/tree/master/src/components/...
In the hypothetical C++/Rust fusion engine? Whatever hasn't been rewritten yet in Rust, and specifically things that interop with other C++ libraries will remain in C++ for longer times.
Edit: Ohh Servo? Similarly, things that haven't been rewritten yet, specifically javascript interpertation/compiliation. AFAIK Servo is focusing on rewriting layout.
IMO, a much larger stalling block will be Windows platform support. Game Development is one industry where not only is Windows a major platform for games, but the sole, primary development platform of nearly all modern games. All modern console toolchains run exclusively on Windows afaict.
I am pretty sure that it's still using mingw rather than VS as well, though eventually, VS support will be important.
> kept trying to build rust from scratch, which may be a mistake.
Yeah, there are binary installers now: http://www.rust-lang.org/install.html
I never said C++ code. I specified the compiler was MSVC++
> I am pretty sure that it's still using mingw rather than VS as well, though eventually, VS support will be important.
That's fundamentally the essence of my question, can MinGW binaries link against MSVC++ generated binaries? If not, then the Windows platform is not really supported well enough to use Rust to seriously develop games with.
[1]: https://github.com/rust-lang/llvm/commits/rust-llvm-2014-05-...
However, you can make custom attributes expand to arbitrary generated code via the macro system, allowing something similar. This is how we do fast JSON serialization, for instance: the #[deriving(Encodable)] attribute expands to optimized, type-specialized code at compile time, avoiding costly reflection at runtime. (Note that this is an experimental feature, so it may change post 1.0.)