To me, a "hard" fork is one where you plan not to maintain any compatibility with your upstream and not to share any future code in either way (neither from original to fork nor back). "Soft" forks often retain a degree of compatibility, and some future developments can be shared.
(In this case, since it's a rewrite in Rust, it's not actually a fork at all, I think)