Earlier quoted context omitted.
mrustc has implemented a significant portion of the language, without a formal spec. It's at least advanced enough to compile the compiler. The biggest feature missing is borrowcheck.
I don't mean a formal spec. Rust is much too complicated and asymmetric to have a formal spec of the kind that exists for other languages (e.g. Standard ML), at least using current specification methodology. It doesn't even have an informal spec, which would be required to have a real attempt at multiple compatible implementations.
(My understanding of mrustc and borrowck is that it's not implemented because the primary initial goal is bootstrapping rustc, not being a general rust compiler.)