Available on crate feature
full only.Expand description
Build automation for mobile platforms.
This module provides builders for Android and iOS that automate the process of compiling Rust code to mobile libraries and packaging them into mobile apps.
§Overview
The builders handle the complete build pipeline:
- Rust compilation - Cross-compile Rust to mobile targets
- Binding generation - Generate UniFFI Kotlin/Swift bindings
- Native library packaging - Copy
.sofiles to Android or create xcframework for iOS - App building - Run Gradle (Android) or xcodebuild (iOS)
§Builders
| Builder | Platform | Output |
|---|---|---|
AndroidBuilder | Android | APK with native .so libraries |
IosBuilder | iOS | xcframework with static libraries |
§Common Utilities
The common module (internal) provides shared functionality:
- Workspace-aware Cargo target directory detection
- Host library path resolution for UniFFI binding generation
- Consistent command execution with actionable error messages
§Builder Options
Both builders support the following configuration:
verbose(bool)- Enable detailed output showing each build stepdry_run(bool)- Preview build steps without making changesoutput_dir(path)- Customize output location (default:target/mobench/)crate_dir(path)- Override auto-detected crate location
§Example
ⓘ
use mobench_sdk::builders::{AndroidBuilder, IosBuilder};
use mobench_sdk::{BuildConfig, BuildProfile, Target};
// Build for Android with dry-run
let android = AndroidBuilder::new(".", "my-bench")
.verbose(true)
.dry_run(true); // Preview only
// Build for iOS
let ios = IosBuilder::new(".", "my-bench")
.verbose(true);
let config = BuildConfig {
target: Target::Android,
profile: BuildProfile::Release,
incremental: true,
};
android.build(&config)?;Re-exports§
pub use android::AndroidBuilder;pub use common::BenchMeta;pub use common::EmbeddedBenchSpec;pub use common::create_bench_meta;pub use common::embed_bench_meta;pub use common::embed_bench_spec;pub use ios::IosBuilder;pub use ios::SigningMethod;