Je veux appeler le code Rust de Java/Android, et je l'ai trouvé 3 variantes de le faire:Comment automatiser les liaisons Java pour le code Rust?
JNI semble bon et puissant assez, mais vous devez écrire trop de code à la main.
JNA, sinon en prenant en considération qu'il crashes on my machine, nécessite l'écriture de la description du type de données de Rust en Java à la main, le même problème avec JNR FFI.
Je me demande comment sera difficile de générer le code JNI pour traits
et struct
avec des macros ou un plug-in de compilateur? Ce compilateur doit correspondre à traits implémentations pour struct béton, et aussi 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
}
}
et créer des classes Java pour les classes struct et Java avec native
fonctions, ainsi que générer pub
no_mangle
fonctions que les fonctions des traits d'enveloppe.
Swig peut gérer la rouille? Je veux dire explicite, pas genetate c/C++ que je dois coller pour rouiller le code. – fghj
Plus la documentation de jnaerator sur le c/C++, l'objectif-c, mais pas la rouille, est-elle vraiment compatible avec la rouille? – fghj