Skip to content

Pains as a user on ARM64 and/or Android #3120

Description

@mentalisttraceur

This is mostly information about some downstream user frustrations, and a couple vague thoughts about what y'all might be able to do to help.

My only experience with maturin is as a user -- for the past several years, if I run pip install ... and there's an error, it's always somehow mentioning Maturin.

  • In the common case on x86-64 CPUs, it works great -- never seen an issue on my laptops or any servers I work on (WSL2 on Windows, or various Linux VMs in the cloud).

  • But ARM64 is becoming more common on laptops and servers. In those cases, if the project didn't package ARM64 wheels, there might not be a rustc installed, so pip install will fail, and then the user has to figure out that they need to install Rust, rerun pip install, and wait while it seems to hang because it's downloading and building a bunch of crates.

  • And I also use pip install just as much or more on my phones (in Termux on Android). Usually, this works perfectly, because for most purposes, Termux on Android is just Linux and most things don't need to care -- Python just works, ARM64 Linux wheels just work, C/C++ libs compile fine, Rust crates compile fine. But now most recently Maturin has started seemingly assuming that I'm trying to compile an Android app, so now I'm forced to export an ANDROID_API_VERSION just to install packages that have nothing Android-specific in them.

My point is basically two things:

  1. Is there anything Maturin can do to cause/encourage projects to build ARM64 wheels in addition to x86-64? ARM64 is becoming more common in servers and laptops.

  2. Just please keep in mind that you might be running on Android rather then building for Android, because some people use Android more like a Linux computer.

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions