They use the LLVM as the backend, which is quite well optimised. The relatively poorer performance of that program on x86 may just be a bug (as the x86 version is compiled with a slightly different version of the Rust compiler); the program uses recursion, which may not be a Rust idiom and hence may not be well tested for performance regressions.
The difference on x64-64 is the Rust is using 64-bit integers (`int` is pointer sized), while the C is only using 32-bit ones; changing them to the 32-bit `i32` to match the C makes Rust super-fast:
75699
LANGUAGE Rust 2167
75699
LANGUAGE C 2220 # gcc
75699
LANGUAGE C 2271 # clang