Voglio chiamare il codice Rust da Java/Android, e ho trovato 3 varianti di farlo:Come automatizzare i binding Java per il codice Rust?
JNI sembra buono e potente abbastanza, ma devi scrivere troppo codice a mano.
JNA, se non prendere in considerazione che crashes on my machine, richiede crei ruggine struct descrizione tipo di dati in Java mano, lo stesso problema con JNR FFI.
Allora mi chiedo quanto sia difficile sarà generare JNI codice per traits
e struct
con le macro o un plugin compilatore? Questo compilatore dovrebbe corrispondere tratti implementazioni per struct calcestruzzo, e anche struct
#[JNI]
struct Foo {
a: i32,
}
trait Boo {
fn f(&self, b: f64) -> f64;
}
#[JNI]
impl Boo for Foo {
fn f(&self, b: f64) -> f64 {
0f64
}
}
e creare classi Java per le classi struct e Java con native
funzioni, oltre a generare pub
no_mangle
funzioni che i tratti avvolgere funzioni.
Il tampone può maneggiare la ruggine? Intendo dire esplicita, non genetate c/C++ che devo incollare al codice ruggine. – fghj
Più documentazione di jnaerator point su c/C++, obiettivo-c, ma non ruggine, è davvero un supporto per la ruggine? – fghj