types. E.g. • Go string to C string func C.CString(goString string) *C.char • C string to Go string func C.GoString(cString *C.char) string • C Arrays to Go slices import "C" import "unsafe" var theCArray *C.YourType = C.getTheArray() length := C.getTheArrayLength() slice := (*[1 << 30]C.YourType)(unsafe.Pointer(theCArray))[:length:length]
libraries, binding functions within them, and calling those functions from Ruby code. Moreover, a Ruby-FFI extension works without changes on Ruby and JRuby”.