dart-archive / wasm

Utilities for loading and running WASM modules from Dart code
https://pub.dev/packages/wasm
BSD 3-Clause "New" or "Revised" License
309 stars 25 forks source link

Support wasm on iOS #72

Open kevmoo opened 2 years ago

kevmoo commented 2 years ago

image

Should we update the readme?

liamappelbe commented 2 years ago

Not quite yet. I haven't published the flutter plugin yet, because I haven't added iOS support. I'm working on that now.

raegartargarian commented 2 years ago

when approximately should we expect flutter support?

Catsvilles commented 2 years ago

I saw that Wasmer has IOS support now, so we are getting there, I guess :)

https://wasmer.io/posts/wasmer-2.1

wjcwukong commented 2 years ago

any update to support iOS?

liamappelbe commented 2 years ago

I've been working on it from time to time, but it's not my top priority. The main issue is that I'm running into a long series of linker errors. I have no experience with iOS, so they're taking a long time to fix, and each time I fix one there's another. So I don't have an ETA.

If any iOS build system experts want to take a crack at fixing it, you can clone the branch and try flutter run in flutter_wasm/example. The layers of build scripts are: flutter run -> flutter_wasm/ios/flutter_wasm.podspec -> flutter_wasm/bin/ios_setup.dart -> wasm/bin/setup.dart -> cargo/clang.

One other weird thing I've noticed is that if I run flutter_wasm/bin/ios_setup.dart directly, the build progresses further (though I still get other linker errors). So the iOS build system must be doing something strange to the environment variables.

sachaarbonel commented 2 years ago

I believe you need a dummy swift method that invokes your rust library because somehow xcode considers them as unused and strip them. For example: https://github.com/brickpop/flutter-rust-ffi/blob/f7b5d399bab542641b67466c31294b106d57bb9e/ios/Classes/SwiftMylibPlugin.swift#L15-L16