Is it possible to translate C into (unsafe) Rust while maintaining both human readability and link-level compatibility?

There is also https://github.com/jameysharp/corrode

I have not used it, but I doubt it's possible to translate C into idiomatic Rust mechanically.