Objective-Rust
Funny enough, this is exactly what my objrs crate is meant for: <a href="https://gitlab.com/objrs/objrs" rel="nofollow">https://gitlab.com/objrs/objrs</a><p>You can implement new Objective-C classes directly in Rust. Or use Objective-C classes/methods from Rust. objrs is mostly a collection of macros that transforms the Rust code to be ABI-compatible with normal Objective-C code. There isn't any runtime work done by objrs. It's all done at compile time.<p>Here's an example of creating an new class:<p><pre><code>  #[objrs(class, super = NSObject)]
  pub struct StringCollection {
    strings: Vec<String>,
  }

  #[objrs(impl)]
  impl StringCollection {
    #[objrs(selector = "new", no_impl)]
    pub fn new() -> objrs::Strong<StringCollection> {}

    #[objrs(selector = "printStrings")]
    pub fn print_strings(&self) {
      for string in self.strings.iter() {
        println!("String: {}", string);
      }
    }
  }
</code></pre>
I'm still slowly rewriting it. It requires nightly Rust, and unfortunately doesn't compile with the latest nightly. And it doesn't currently build from HEAD. But it's been a fun hobby project.