Rust eBPF guide

I have been trying to research eBPF. I'm somewhat new to Rust, but I know the basics and have written some production code with it. I am an Observability engineer and want to start diving into eBPF.

Firstly, does anyone know if an eBPF program can be written without C and entirely with Rust? Most of the repositories I find have C dependencies. If rust does work, is it only on linux kernels greater the 6.1?

Secondly does anyone know of a good book or guide to learning how to use eBPF with Rust?