RustFerry 0.1.0
Pre-releaseRustFerry 0.1.0
One Rust codebase. Android and iOS artifacts. No Gradle or Xcode project to maintain.
RustFerry 0.1.0 is the first public pre-release of a Cargo-first mobile toolchain with direct Android packaging, generated Apple hosts, VS Code workflows, device tooling, CI, signing, and remote macOS builds.
Read the guide · Install for VS Code · View on crates.io
Revision: 3218e78aad377bd15a8eb4b8b263a156b62a618f
Install
Rust 1.92 or newer is required.
cargo install cargo-ferry --version 0.1.0 --lockedGenerated projects use the exact rustferry 0.1.0 runtime from crates.io by default.
Published crates
cargo-ferry0.1.0rustferry0.1.0rustferry-core0.1.0rustferry-codegen0.1.0rustferry-android0.1.0rustferry-apple0.1.0rustferry-remote0.1.0rustferry-github0.1.0rustferry-ssh0.1.0
RustFerry 0.1.0 is a public pre-release.
- Record the GitHub-hosted Ubuntu Android source-beta acceptance for production source
ed45328d6fc375e81b20ab10c1014c4b8d224a85, including the retained signed/aligned arm64 APK evidence and separate Cargo gates for later artifact, store, and test changes. - Add private immutable remote-job history with bounded sanitized provider logs, fresh-process cancellation, exact and current-source retry lineage, and crash-safe complete-lineage pruning.
- Add explicit consent-bound public GitHub GitSnapshot builds for dirty projects with zero-write preview, create-only temporary refs, restart recovery, retained exact-source retry, and non-erasure warnings.
- Add managed artifact list/show/inspect/verify/reveal/remove commands with exact provenance, Windows retained-identity removal, replacement preservation, and durable idempotence.
- Extend IDE protocol v1 and the VS Code Remote Jobs view with cursor-paged logs, cancel/retry, artifact actions, snapshot preview/submit, and metadata-only signing readiness.
- Add an additive exact-input
workflow_dispatchtransport foundation while retaining Push as the compatible/default provider trigger; live dispatch still requires a wired provider consumer plus matching default-branch and dispatched-ref workflow definitions. - Return a manifest-bound sanitized protected-signing log with every default GitHub development IPA, keep the exact five-file default transport, and add request-bound signed
.app, reconstructed XCArchive, and main-application dSYM selection with independent client verification. - Add a Rust-only Calculator example with tested arithmetic state transitions, an Android-ready Slint UI, and a user-confirmed physical Android launch and interaction.
- Load generated Android app libraries through the JVM before dispatching JNI callbacks from
NativeActivity. - Normalize safe Windows verbatim paths before invoking Cargo,
javac, and D8 so local Android builds accept canonical project paths. - Export the selected NDK under Cargo build-script aliases, including
ANDROID_NDKrequired by Skia. - Add the public Visual Studio Marketplace listing and marketplace icon for RustFerry for VS Code.
- Add bounded per-target GitHub manual signing for an application, Widget, and Live Activity with exact repeatable profile selection, canonical static protected secrets, complete target-graph binding, versioned multi-profile stdin transport, and legacy single-application compatibility.
- Add pinned SSH Mac endpoints and strict snapshot-session v1 with bounded source upload, ordered progress and cancellation, independently verified unsigned XCArchive transfer, receipt-gated publication, and zero-retention cleanup.
- Keep SSH snapshot builds explicitly unsigned-only; signing, IPA export, installation, and physical-device runtime remain unsupported and unvalidated.
- Add deterministic snapshot inspect/create/verify commands and make physical-device builds select the GitHub remote automatically on Linux and Windows when
--remoteis omitted. - Harden remote build file-identity checks across Windows and macOS, create and verify Windows SSH config/operation objects with protected owner-bound ACLs, make provider-config replacement no-clobber, and bound GitHub CLI process cleanup.
- Add manual GitHub remote-signing setup with local Apple Development asset validation, secure bounded secret upload after confirmation, and signing-plan persistence only after remote verification.
- Add versioned remote-build contracts and a GitHub-hosted macOS physical-iPhone pipeline with exact-ref publication, unsigned archive validation, protected development signing, verified artifact download, cancellation, and cleanup.
- Establish the RustFerry workspace, strict configuration, atomic project templates, host-testable runtime, platform build foundations, documentation, and cross-platform CI.
- Add IDE protocol v1 and a packaged native VS Code extension with project creation, diagnostics, builds, artifacts, devices, install, run, and cancellable application-filtered log streaming.
- Add typed ADB, simctl, and devicectl discovery/deployment plus an official opt-in physical-iOS development-signing pipeline.
- Make generated projects registry-first with explicit registry, workspace, and local-path runtime sources and independent display names.
- Replace placeholder images with validated 1024px sources and deterministic Android density/iOS asset-catalog generation.
- Add package, license, VSIX, archive-safety, CI, and draft-release hardening.
- Validate the Rust-only workflow across Windows, Linux, and macOS CI, including generated starters, documentation, the VS Code extension, package archives, and the Android artifact pipeline.
- Keep Android emulator, iOS Simulator, physical-iPhone runtime, generalized physical-device install/run/log flows, live SSH compilation, and a development-signed remote IPA explicitly unvalidated in this release.
Slint licensing and attribution
RustFerry's default generated UI uses Slint.
When distributing an application under the Slint Royalty-Free License,
the application publisher must satisfy Slint's attribution conditions:
either provide the AboutSlint widget in an accessible About dialog or
splash screen, or display the official Slint attribution badge on a
public application/download page.
Applications may instead use Slint under GPLv3 or an applicable
commercial license. RustFerry does not remove or replace the
application publisher's licensing obligations.