flapigen rs
0.8.0
Rust로 작성된 프로그램 또는 라이브러리를 다른 언어와 연결하는 도구. 외국어 API 생성기 - 플래피고. 이전 이름 Rust_Swig는 SWIG와 혼동하지 않도록 변경되었습니다. 현재 C++ 및 Java 에 대한 지원을 구현했지만 원하는 언어에 대한 지원을 작성할 수 있습니다. 지시를 보려면 Flapigen을 프로젝트와 통합하는 방법은 여기를 참조하십시오.
다음과 같은 녹 코드가 있다고 가정합니다.
struct Foo {
data : i32
}
impl Foo {
fn new ( val : i32 ) -> Foo {
Foo { data : val }
}
fn f ( & self , a : i32 , b : i32 ) -> i32 {
self . data + a + b
}
fn set_field ( & mut self , v : i32 ) {
self . data = v ;
}
}
fn f2 ( a : i32 ) -> i32 {
a * 2
}그리고 당신은 Java로 다음과 같은 글을 쓰고 싶습니다.
Foo foo = new Foo ( 5 );
int res = foo . f ( 1 , 2 );
assert res == 8 ;또는 C ++에서 다음과 같은 것 :
Foo foo ( 5 );
int res = foo.f( 1 , 2 );
assert (res == 8 );이를 구현하기 위해 Flapigen은 다음 기능을 제안합니다. Rust Project에서는 다음과 같은 기능을 제안합니다 (Rust Language).
foreign_class ! ( class Foo {
self_type Foo ;
constructor Foo :: new ( _ : i32 ) -> Foo ;
fn Foo :: set_field ( & mut self , _ : i32 ) ;
fn Foo :: f ( & self , _ : i32 , _ : i32 ) -> i32 ;
fn f2 ( _ : i32 ) -> i32 ;
} ) ;결과적으로 Flapigen은 Rust Functions에 대한 JNI 랩퍼를 생성하고 JNI 기능을 호출하거나 C ++ 및 C ++ 코드의 경우 C 호환 랩퍼를 생성하여 이러한 C 기능을 호출합니다.
인터페이스 파일 ( foreign_class! 등이 포함 된 파일)을 자동으로 생성하려면 Rifgen을 확인하십시오.
여기에서 flapigen 사용자 안내서를 읽으십시오!