Transport / Apple extension boundary

Planned

macOS FSKit

FSKit is the native macOS extension path for a future mounted volume. The current work proves the Swift/Rust worker seam and bundle layout, not an installed or activated product.

Platform requirements

The extension targets the installed FSKit V1 SDK with a macOS 15.4 deployment floor; path-backed resources use the macOS 26+ API described by the integration. A containing app, provisioning profile, Apple entitlement, signing identity, and user approval are required for a real activated volume.

Mount vs mount-free

The current bridge is mount-free: in-process worker/XPC tests call the Rust driver and reopen data through a second worker. The unsigned host embeds the appex but is not registered, launched by launchd, or enabled in System Settings.

Planned — scoped evidence

Unsigned SDK/worker checkpoint with a 12-test Rust bridge suite and arm64 build evidence; signing, installation, activation, and real mounts remain pending. The Rust bridge suite has 12 passing tests covering bounded frames, malformed input, provider errno propagation, handle shutdown, rooted host round trips, and durable split-SQLite reopen. Swift frame tests, in-process XPC lifecycle tests, and unsigned arm64/Xcode builds also pass on the recorded macOS 26.5.1 arm64 SDK/Xcode 26.6 environment. The activation script now has an explicit required mode that only passes after signing, installation, user approval, and a real read/write mount check; without those prerequisites it reports a diagnostic block. All of this remains transport/worker evidence rather than a mounted- volume result.

What the transport exposes

Swift translates FSKit operations to a little-endian bounded Rust worker frame with a 1 MiB body limit and 128 KiB data chunks; Rust owns filesystem, provider, locking, and lifecycle behavior. The bridge supports memory, rooted host, SQLite, and split SQLite backends in its current test configuration.

Verify the unsigned seam without calling it a mount

Evidence-oriented check
cargo test --manifest-path transports/mount-rs-fskit/Cargo.toml --locked

xcodebuild -project transports/mount-rs-fskit/MountRsFSKit.xcodeproj   -scheme MountRsHost -configuration Debug -sdk macosx26.5   CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO build

Safe use and lifecycle

Do not attempt installation with an unsigned artifact. Keep backend paths and chunk sizes in the host environment, and treat the containing app as a build artifact until signing and user-approved activation are available.

Current limitations

No valid Apple signing identity, provisioning profile, launchd registration, or FSKit activation test is currently recorded. The local Rust toolchain can build arm64 targets and the extension for x86_64, but cannot link the x86_64 XPC service because that Rust target is not installed. Optional xattrs, offloaded I/O, extent/preallocation, and special-node surfaces also remain separate gaps. FUSE/NFS fallback does not close this stream.

← Back to transports