We have a project, where we generate both C and C# bindings for a Rust library. The API is very C-like, and we take care not to use any fancy features in it.
C# bindings are currently generated for us by csbindgen, which is not on par with cbindgen feature-wise (and its authors don't seem like they want it to be). We thus have to employ a lot of hacks to make it work.
cbindgen, on the other hand already supports most of what we need. Is either adding a new C# backend to cbindgen or exposing the intermediate representation so that people can write their own backends possible and desirable?
We might have to do this anyway, but we'll gladly contribute back.