core is very comprehensive and alloc adds dynamic allocation once your kernel supports a heap. The complicated data structures in kernels are much easier to write in Rust, in my opinion. And you can be certain of their consistency when you have multiple cores running kernel code because of the ownership model.
I prefer doing bare metal development in Rust if possible