Integrating a Rust module into an Android app

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • uniffi-rs

    a multi-language bindings generator for rust

  • I've worked on some projects (private and commercial) where embedding Rust into one of those targets was required: iOS, Android, Flutter, macOS, Web. I've played around with a variety of approaches because there exist multiple solutions depending on the platform. Apart from Web/Wasm, where Rust really shines, the next best solution is uniffi by Mozilla, which has quite solid iOS/Android support:

    https://github.com/mozilla/uniffi-rs

    While this works, the bigger pain (at least on iOS) is that the Rust-Compiler LLVM and Xcode LLVM are not always in sync leading to strange bugs. Also, packaging Rust libraries into a nice XCFramework (or even SPM Module) works, but usually involves hacky shell scripts.

    The reason why you'd still want to do this is if there's a Rust library that has no equivalent on the Kotlin or Swift side. There're a lot of good crates / libraries for Rust would require an expensive re-implementation in Swift or Kotlin. Also, because Rust doesn't have a garbage collector, it is easier to embed in garbage collected languages like Kotlin without running into situations where the two garbage collectors don't agree.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts