Tôi muốn gọi mã Rust từ Java/Android, và tôi đã tìm thấy 3 biến thể làm như vậy:Làm thế nào để tự động hóa các ràng buộc Java cho mã Rust?
JNI có vẻ tốt và mạnh mẽ đủ, nhưng bạn phải viết quá nhiều mã bằng tay.
JNA, nếu không tính đến nó crashes on my machine, yêu cầu viết mô tả kiểu dữ liệu Rust struct trong Java bằng tay, cùng một vấn đề với JNR FFI.
Vì vậy, tôi tự hỏi làm thế nào khó khăn sẽ được tạo ra JNI mã cho traits
và struct
với macro hoặc plugin trình biên dịch? trình biên dịch này phải phù hợp với đặc điểm triển khai cho struct bê tông, và cũng 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
}
}
và tạo các lớp Java cho các lớp học struct và Java với native
chức năng, cộng với tạo pub
no_mangle
chức năng mà đặc điểm quấn chức năng.
Swig có thể xử lý gỉ? Tôi có nghĩa là explicity, không genetate c/c + + mà tôi có Để keo vào mã gỉ. – fghj
Thêm tài liệu về điểm jnaerator về c/C++, mục tiêu-c, nhưng không bị rỉ sét, liệu nó có thực sự hỗ trợ gỉ không? – fghj