#bindings #api #obj-c #generated-bindings

rustkit

Fast and ergonomic Rust bindings for ObjC APIs

1 unstable release

Uses old Rust 2015

0.0.1 Aug 24, 2018

#194 in #generated-bindings

Apache-2.0/MIT

21KB
490 lines

RustKit

Fast and ergonomic Rust bindings for ObjC APIs

RustKit is currently under development. Please try it if you want to contribute or provide feedback on the generated bindings.

Prerequisites

Clang 8.0 (currently trunk) with a patch is currently required. Build clang and set the LIBCLANG_PATH environmental variable to the directory that libclang.dylib is in, which should be in the lib directory of your clang/llvm build directory.

Example

extern crate rustkit;

use rustkit::NSObject;

fn main() {
    let obj = NSObject::new();
    
    let desc = NSObject::description();
    let desc = desc.unwrap();
    let desclen = desc.length();
    let ruststr: String =
        (0..desclen).map(|i|
                         std::char::from_u32(desc.characterAtIndex_(i) as u32).
                         unwrap()).collect();
    println!("NSObject::description(): {}", ruststr);
}

Dependencies

~81–640KB
~15K SLoC