Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rust meets Mobile

Keith Smiley
November 07, 2022

Rust meets Mobile

2022 BazelCon talk about using bazel to build rust libraries for iOS and Android

Keith Smiley

November 07, 2022
Tweet

More Decks by Keith Smiley

Other Decks in Programming

Transcript

  1. rust_library( name = "foo", srcs = ["foo.rs"], ) swift_library( name

    = "main", srcs = ["main.swift"], deps = [":foo"], ) ios_application(...) Shouldn't this work?
  2. #[no_mangle] pub extern fn print_something_from_rust() { println!("Ferris says hello!"); }

    #[no_mangle] pub extern fn get_a_value_from_rust() -> i32 { 42 } extern void print_something_from_rust(void); extern int32_t get_a_value_from_rust(void);
  3. #[no_mangle] pub extern "system" fn Java_com_example_androidapp_JniShim_getValue() -> i32 { get_a_value_from_rust()

    } package com.example.androidapp; public class JniShim { public static native int getValue(); }
  4. - bazel#11454 - bazel#15041 - bazel#15248 - bazel#15462 - bazel#7260

    - cargo-raze#484 - cargo-raze#489 - rules_rust#1186 - rules_rust#1238 - rules_rust#1259 - rules_rust#1271 - rules_rust#1276 - rules_rust#1290 - rules_rust#1304 - rules_rust#1362 - rules_rust#1372 - rules_rust#1401 - rules_rust#1462 - rules_rust#1541 - rules_rust#1545 - rules_rust#1546 - rules_rust#1573 - rules_rust#1576 - rust#73632