Interoperabilidade com C

Rust tem suporte completo para vincular arquivos de objeto com uma convenção de chamada C. Da mesma forma, vocĂȘ pode exportar funçÔes Rust e chamĂĄ-las em C.

VocĂȘ pode fazer isso manualmente se quiser:

extern "C" {
    fn abs(x: i32) -> i32;
}

fn main() {
    let x = -42;
    // SEGURANÇA: `abs` não tem nenhum requisito de segurança.
    let abs_x = unsafe { abs(x) };
    println!("{x}, {abs_x}");
}

JĂĄ vimos isso no exercĂ­cio Safe FFI Wrapper .

Isso pressupÔe conhecimento total da plataforma de destino. Não recomendado para produção.

Veremos opçÔes melhores a seguir.