It's possible to implement GObject subclasses in Rust which little additional overhead as compared to doing it in C, but you get the syntactical niceties of for each loops, traits, and other features of Rust.
librsvg makes good use of these bindings, and is undergoing a rewrite in Rust. Gstreamer bindings are also becoming more complete, and example implementations of many of the standard plugins have been rewritten. The official implementation is still in C though.
Vala is a neat concept though and a pretty clean language.
https://people.gnome.org/~federico/blog/librsvg-gobject-in-r...