anderspitman opened issue #10757:
I recently managed to get wasmtime-py working on Android (see https://github.com/bytecodealliance/wasmtime-py/pull/279, thanks @alexcrichton!)
I'd like to get it working in a native Anrdoid app via Kotlin bindings. I see Java was previously asked about (https://github.com/bytecodealliance/wasmtime/issues/8394), and I see a couple 3rd-party wasmtime-java repos that are both a couple years without updates (https://github.com/kawamuray/wasmtime-java, https://github.com/bluejekyll/wasmtime-java).
Is anyone currently running wasmtime on Android in production? Are there recommended libraries to get started with?
alexcrichton commented on issue #10757:
I'm not aware of any users using Wasmtime on Android and/or through Java at this time myself, but maybe others do? My guess though is that you're blazing the trail here though.
anderspitman commented on issue #10757:
@alexcrichton do you happen to know if the Android builds are limited to interpreter mode, or if the cranelift backend is expected to work?
anderspitman edited a comment on issue #10757:
@alexcrichton starting to dig into this. Do you happen to know if the Android builds are limited to interpreter mode, or if the cranelift backend is expected to work?
alexcrichton commented on issue #10757:
I believe Cranelift should be enabled by default, yeah, although if it's not or if you see problems definitely let us know! (Note that we don't test Android though so while I don't know why it wouldn't work I also wouldn't be certain it would work)
crowforkotlin commented on issue #10757:
@anderspitman @alexcrichton
I've implemented a wasmtime Kotlin/wasi implementation. This can run perfectly on an Android ARM64v8a device and load the wasm artifacts generated by Kotlin/wasi. On Android, it loads these wasm artifacts via wasmtime and calls functions from the wasm file. It's currently under development. The plan is to support the Kotlin Multiplatform platform after JNI integration, enabling bidirectional RPC communication. Android already supports this, and support will be added for Windows, macOS, and Linux. iOS requires implementation via Kotlin/native and will need debugging. You can check the main2 branch, which is currently being updated; it will be removed and reconfigured later.
Additionally, on Android, the minimum file size cannot be used; a full-featured artifact should be implemented, supporting AOT and JIT. The configuration also differs from desktop.
https://github.com/crowforkotlin/wasmline/tree/main2

Last updated: Dec 06 2025 at 07:03 UTC