fzyzcjy / flutter_rust_bridge

Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.
https://fzyzcjy.github.io/flutter_rust_bridge/
MIT License
4.26k stars 300 forks source link

third party lib, doesnt throw errors nor generate files #2304

Open abdelaziz-mahdy opened 1 month ago

abdelaziz-mahdy commented 1 month ago

Describe the bug

i am trying to create mapping to polars, but the generate function works but doesnt create the mapping so i am confused

Steps to reproduce

Hint: A simple way to reproduce is to clone and modify the https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/frb_example/dart_minimal example package according to your needs.

  1. updated the frb_example/dart_minimal/flutter_rust_bridge.yaml to have rust_input: polars
  2. run cd rust && cargo add polars && cd ..
  3. run flutter_rust_bridge_codegen generate

Logs

https://justpaste.it/exo6j

Expected behavior

the dart binding should get generated

Generated binding code

none

OS

macos

Version of flutter_rust_bridge_codegen

2.4.0

Flutter info

[✓] Flutter (Channel stable, 3.24.3, on macOS 15.0 24A335 darwin-arm64, locale
    en-EG)
    • Flutter version 3.24.3 on channel stable at
      /Users/AbdelazizMahdy/Developer/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (8 days ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/AbdelazizMahdy/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16A242d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      17.0.11+0-17.0.11b1207.24-11852314)

[✓] IntelliJ IDEA Community Edition (version 2024.2.0.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin version 242.20629

[✓] VS Code (version 1.93.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.96.0

[✓] Connected device (3 available)
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 15.0 24A335 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 15.0 24A335 darwin-arm64
    • Chrome (web)                    • chrome                • web-javascript • Google Chrome 128.0.6613.138

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Version of clang++

clang --version Apple clang version 16.0.0 (clang-1600.0.26.3) Target: arm64-apple-darwin24.0.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Additional context

No response

welcome[bot] commented 1 month ago

Hi! Thanks for opening your first issue here! :smile:

fzyzcjy commented 1 month ago

Hi, could you please provide a minimal reproducible sample?

Btw, polars may be too complex to be auto scanned by the experimental "scan whole third party package" feature.

And you may be interested in: https://github.com/Desdaemon/polars_dart

abdelaziz-mahdy commented 1 month ago

this is an example repo, https://github.com/abdelaziz-mahdy/polars_dart

i would love to have the auto scan working in general since that will make migration rust crates binding so much easier and that will improve the dart platform in general, so i am interested to make it work

fzyzcjy commented 1 month ago

i would love to have the auto scan working in general since that will make migration rust crates binding so much easier and that will improve the dart platform in general, so i am interested to make it work

I think so, that would be quite convenient. And, even if it cannot handle 100% cases, let it handle a large portion of trivial things would also be beneficial.

fzyzcjy commented 1 month ago

Looked at the logs. Seems

[2024-09-19T23:27:04.134Z DEBUG /Users/AbdelazizMahdy/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.4.0/src/library/codegen/parser/hir/tree/transformer/pub_use_transformer.rs:155] transform_module_by_pub_use_single skip `PubUseInfo { namespace: Namespace { joined_path: "polars_core::export" }, name_filter: None }` since cannot find mod

i.e. the polars package is almost empty and only exports polars_core. On the other hand, frb currently has not implemented such complex cross-multiple-third-party-crate-import things.

abdelaziz-mahdy commented 1 month ago

Looked at the logs. Seems

[2024-09-19T23:27:04.134Z DEBUG /Users/AbdelazizMahdy/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.4.0/src/library/codegen/parser/hir/tree/transformer/pub_use_transformer.rs:155] transform_module_by_pub_use_single skip `PubUseInfo { namespace: Namespace { joined_path: "polars_core::export" }, name_filter: None }` since cannot find mod

i.e. the polars package is almost empty and only exports polars_core. On the other hand, frb currently has not implemented such complex cross-multiple-third-party-crate-import things.

Oh okay, guess I will wait for it to get fixed when you have time to do so,

Or create my own API around it

Thank you for the awesome package and looking forward to scanning to be improved

fzyzcjy commented 1 month ago

You are welcome! I guess this may be a bit nontrivial so cannot estimate the time to implement it.

abdelaziz-mahdy commented 1 month ago

i was trying ndarray and faced the same issue, dont know if they are related or not but i wanted to share it incase it helps https://github.com/abdelaziz-mahdy/rust_ndarray_dart logs: https://justpaste.it/8v3kt