analyze-rust-ffi-crate-surface
Mapuj symbole Rust FFI w kodzie C i znajdź miejsca ich użycia
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność do analizy interfejsów między kodem Rust a C. Skanuje Rust FFI crate'y, wyodrębnia wszystkie symbole eksportowane do C (funkcje, typy danych), a następnie znajduje miejsca ich użycia w kodzie C. Przydatna przy ocenie wpływu zmian w bibliotekach Rust na istniejący kod C oraz przy refaktoryzacji interfejsów międzyjęzykowych.
Jak używać
Przygotuj ścieżkę do Rust crate'u lub pliku FFI, który chcesz analizować. Jeśli ścieżka nie zaczyna się od
src/, system automatycznie założy, że znajduje się w katalogusrc/redisearch_rs/c_entrypoint. Na przykładnumeric_range_tree_ffizostanie rozwinięty dosrc/redisearch_rs/numeric_range_tree_ffi.Uruchom umiejętność, podając ścieżkę do Rust crate'u lub pliku. Możesz analizować jeden plik, cały katalog lub wiele ścieżek jednocześnie, przekazując je jako argumenty.
Umiejętność przeskanuje pliki Rust i wyodrębni wszystkie symbole FFI eksportowane do C, takie jak funkcje oznaczone
extern "C" fnz atrybutem#[unsafe(no_mangle)]oraz definicje typów. W razie potrzeby skorzysta z auto-generowanych plików nagłówkowych z katalogusrc/redisearch_rs/headers.Dla każdego znalezionego symbolu umiejętność przeszuka kod C, aby ustalić, gdzie jest on używany — w wywołaniach funkcji, jako typ argumentu, typ pola struktury lub w rzutowaniu typów.
Otrzymasz raport zawierający dla każdego symbolu: nazwę symbolu, moduły C, które go używają, typ symbolu (funkcja, typ danych itp.) oraz informację, czy jest używany wyłącznie w testach jednostkowych.
Przeanalizuj raport, aby zidentyfikować zależności między kodem Rust a C i ocenić potencjalny wpływ planowanych zmian w interfejsie FFI.