Skip to content

Latest commit

 

History

History
28 lines (21 loc) · 942 Bytes

README.md

File metadata and controls

28 lines (21 loc) · 942 Bytes

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);
}