c_char is i8, so trying to use string::raw::from_buf involves this:
let cstring: *c_char = .....;
let s = string::raw::from_buf(cstring as *const i8 as *const u8);
Either c_char should switch to u8, or string::raw::from_buf should take *const i8. Right now using this is quite tedious.