Skip to main content

Crate rustferry_remote

Crate rustferry_remote 

Source
Expand description

Cross-platform contracts for RustFerry remote Apple builds.

This crate contains data and provider boundaries only. Provider implementations own networking and process execution; callers choose the async runtime, if any.

Re-exports§

pub use artifact::ARTIFACT_MANIFEST_SCHEMA_VERSION;
pub use artifact::ApplePlatform;
pub use artifact::AppleToolchainEvidence;
pub use artifact::ArtifactError;
pub use artifact::ArtifactKind;
pub use artifact::ArtifactManifest;
pub use artifact::ArtifactRecord;
pub use artifact::ArtifactSigningEvidence;
pub use artifact::CleanupStatus;
pub use artifact::IosDeviceProductExpectation;
pub use artifact::IpaExpectation;
pub use artifact::IpaInspection;
pub use artifact::MachOSliceEvidence;
pub use artifact::PROTECTED_SIGNING_SANITIZED_LOG_V1;
pub use artifact::UnsignedAppInspection;
pub use artifact::UnsignedNestedBundleExpectation;
pub use artifact::UnsignedNestedBundleKind;
pub use artifact::UnsignedXcarchiveExpectation;
pub use artifact::UnsignedXcarchiveInspection;
pub use artifact::ValidationLevel;
pub use artifact::inspect_ipa;
pub use artifact::inspect_physical_iphone_macho;
pub use artifact::inspect_unsigned_app_bundle;
pub use artifact::inspect_unsigned_xcarchive;
pub use artifact::verify_downloaded_file;
pub use cancellation::CancellationToken;
pub use data_plane::MAX_WORKER_DATA_PLANE_ARTIFACT_BYTES;
pub use data_plane::MAX_WORKER_DATA_PLANE_CONTROL_BYTES;
pub use data_plane::MAX_WORKER_DATA_PLANE_REQUEST_BYTES;
pub use data_plane::MAX_WORKER_DATA_PLANE_RESULT_BYTES;
pub use data_plane::MAX_WORKER_DATA_PLANE_SOURCE_BYTES;
pub use data_plane::WORKER_DATA_PLANE_HEADER_BYTES;
pub use data_plane::WORKER_DATA_PLANE_SCHEMA_VERSION;
pub use data_plane::WorkerDataPlaneFrameError;
pub use data_plane::WorkerDataPlaneFrameHeader;
pub use data_plane::WorkerDataPlaneFrameKind;
pub use data_plane::WorkerDataPlaneSequence;
pub use data_plane::copy_worker_data_plane_payload;
pub use data_plane::read_worker_data_plane_header;
pub use data_plane::read_worker_data_plane_payload;
pub use data_plane::write_worker_data_plane_frame;
pub use data_plane::write_worker_data_plane_header;
pub use data_plane::write_worker_data_plane_stream;
pub use error::RemoteBuildError;
pub use error::RemoteBuildResult;
pub use handoff::COMPILE_HANDOFF_SCHEMA_VERSION;
pub use handoff::COMPILE_PHASE_EVIDENCE_SCHEMA_VERSION;
pub use handoff::CompileHandoff;
pub use handoff::CompilePhaseEvidence;
pub use handoff::CompileToolchainEvidence;
pub use handoff::SEALED_UNSIGNED_ARCHIVE_SCHEMA_VERSION;
pub use handoff::SealedUnsignedArchive;
pub use profile::MAX_DECODED_PROFILE_BYTES;
pub use profile::ProfileField;
pub use profile::ProfileValidationErrors;
pub use profile::ProfileValidationIssue;
pub use profile::ProfileValidationRequest;
pub use profile::ProvisioningProfileParseError;
pub use profile::ValidatedProvisioningProfile;
pub use profile::parse_decoded_provisioning_profile;
pub use profile::parse_provisioning_profile_value;
pub use profile::validate_profile_for_target;
pub use protocol::BuildProfile;
pub use protocol::CURRENT_PROTOCOL_VERSION;
pub use protocol::CleanupConfirmation;
pub use protocol::DiagnosticSeverity;
pub use protocol::IOS_DEVICE_RUST_TARGET;
pub use protocol::IOS_DEVICE_SDK;
pub use protocol::IosArtifactType;
pub use protocol::IosDeviceBuildRequest;
pub use protocol::IosDeviceBuildResult;
pub use protocol::JobState;
pub use protocol::ProtocolPath;
pub use protocol::ProtocolPathSemantics;
pub use protocol::ProtocolVersion;
pub use protocol::REMOTE_BUILD_EVENT_TYPES;
pub use protocol::RemoteBuildEvent;
pub use protocol::RemoteBuildEventKind;
pub use protocol::RemoteDiagnostic;
pub use protocol::RemoteErrorInfo;
pub use protocol::canonical_git_snapshot_request_template_sha256;
pub use protocol::canonical_request_bytes;
pub use protocol::canonical_request_sha256;
pub use protocol::canonical_retry_template_sha256_v1;
pub use provider::ArtifactDownloadRequest;
pub use provider::ArtifactDownloadResult;
pub use provider::ArtifactListRequest;
pub use provider::BuildProvider;
pub use provider::CancellationAck;
pub use provider::CancellationRequest;
pub use provider::CleanupRequest;
pub use provider::EventPage;
pub use provider::EventRequest;
pub use provider::HandshakeRequest;
pub use provider::HandshakeResponse;
pub use provider::JobHandle;
pub use provider::ProviderCapabilities;
pub use provider::ProviderCheck;
pub use provider::ProviderCheckStatus;
pub use provider::ProviderDoctorReport;
pub use provider::ProviderDoctorRequest;
pub use provider::ProviderFeature;
pub use provider::ProviderFuture;
pub use redaction::CommandOutputRedactor;
pub use redaction::OutputStream;
pub use redaction::REDACTION_MARKER;
pub use redaction::RedactionError;
pub use redaction::SecretRedactor;
pub use redaction::StreamingRedactor;
pub use schema::RemoteProtocolV1Document;
pub use schema::protocol_v1_schema_json;
pub use secret::Secret;
pub use secret::SecretBytes;
pub use secret::SecretReference;
pub use secret::SecretReferenceError;
pub use secret::SecretReferenceKind;
pub use signing::BundleIdentifier;
pub use signing::DevelopmentTeam;
pub use signing::DevelopmentTeamPlan;
pub use signing::DevicePlan;
pub use signing::EntitlementPlan;
pub use signing::EntitlementSet;
pub use signing::EntitlementValueError;
pub use signing::ProvisioningPlan;
pub use signing::ProvisioningPlatform;
pub use signing::ProvisioningProfile;
pub use signing::ProvisioningProfileType;
pub use signing::SigningCertificate;
pub use signing::SigningIdentity;
pub use signing::SigningMode;
pub use signing::SigningPlan;
pub use signing::SigningPrivateKeyReference;
pub use signing::SigningReference;
pub use signing::SigningStatus;
pub use signing::SigningTarget;
pub use signing::SigningTargetKind;
pub use signing::SigningValidationError;
pub use signing::SigningValidationErrors;
pub use signing::SigningValidationReport;
pub use signing::ValidationComponent;
pub use signing::ValidationStatus;
pub use signing::canonical_signing_target_graph_sha256;
pub use snapshot_session::MAX_SNAPSHOT_SESSION_DESCRIPTOR_BYTES;
pub use snapshot_session::SNAPSHOT_SESSION_SCHEMA_VERSION;
pub use snapshot_session::SnapshotArtifactDescriptor;
pub use snapshot_session::SnapshotArtifactReceipt;
pub use snapshot_session::SnapshotBuildComplete;
pub use snapshot_session::SnapshotBuildParameters;
pub use snapshot_session::SnapshotBuildStart;
pub use snapshot_session::SnapshotJobAccepted;
pub use snapshot_session::SnapshotSessionError;
pub use source::GIT_SNAPSHOT_ARCHIVE_PATH;
pub use source::GIT_SNAPSHOT_DESCRIPTOR_PATH;
pub use source::GIT_SNAPSHOT_DESCRIPTOR_SCHEMA_VERSION;
pub use source::GIT_SNAPSHOT_REF_PREFIX;
pub use source::GIT_SNAPSHOT_TREE_PATHS;
pub use source::GitSnapshotDescriptor;
pub use source::IgnoreRuleReason;
pub use source::MAX_GIT_SNAPSHOT_BYTES;
pub use source::MAX_GIT_SNAPSHOT_DESCRIPTOR_BYTES;
pub use source::MAX_SOURCE_BUNDLE_DESCRIPTOR_BYTES;
pub use source::PlannedSourceFile;
pub use source::PortablePathReason;
pub use source::SOURCE_BUNDLE_DESCRIPTOR_SCHEMA_VERSION;
pub use source::SourceArchive;
pub use source::SourceArchiveLimits;
pub use source::SourceBundleDescriptor;
pub use source::SourceBundlePlan;
pub use source::SourceBundleRequest;
pub use source::SourceError;
pub use source::SourceLimitKind;
pub use source::SourceLimits;
pub use source::SourceManifest;
pub use source::SourceManifestEntry;
pub use source::SourceMode;
pub use source::canonical_git_snapshot_descriptor_bytes;
pub use source::create_source_bundle_archive;
pub use source::git_snapshot_archive_limits;
pub use source::git_snapshot_ref;
pub use source::plan_source_bundle;
pub use source::validate_source_manifest;
pub use source::verify_and_extract_source_bundle;
pub use source::verify_and_extract_source_bundle_with_parent_handle;
pub use source::verify_materialized_bundle;
pub use source::verify_source_bundle_plan;
pub use source::verify_source_manifest;
pub use source::write_source_bundle_descriptor_file;
pub use stdio::MAX_WORKER_STDIO_REQUEST_BYTES;
pub use stdio::MAX_WORKER_STDIO_RESPONSE_BYTES;
pub use stdio::WORKER_STDIO_SCHEMA_VERSION;
pub use stdio::WorkerStdioCodecError;
pub use stdio::WorkerStdioErrorResponse;
pub use stdio::WorkerStdioRequest;
pub use stdio::WorkerStdioRequestEnvelope;
pub use stdio::WorkerStdioResponse;
pub use stdio::WorkerStdioResponseEnvelope;
pub use stdio::decode_worker_stdio_request;
pub use stdio::decode_worker_stdio_response;
pub use stdio::encode_worker_stdio_request;
pub use stdio::encode_worker_stdio_response;

Modules§

artifact
Artifact manifests and independent artifact validation. Cross-platform manifests and independent iPhone artifact inspection.
cancellation
Runtime-neutral cooperative cancellation.
data_plane
Length-framed binary transport for large worker source and artifact payloads. Length-framed binary transport for large worker source and artifact payloads.
error
Typed protocol and provider failures.
handoff
Public compile-to-sign handoff evidence. Public compile-to-sign handoff documents.
profile
Bounded parsing and target validation for decoded Apple provisioning profiles. Bounded parsing and target-specific validation for decoded Apple provisioning profiles.
protocol
Ferry Remote Build Protocol v1 data and NDJSON events.
provider
Runtime-neutral asynchronous build-provider boundary.
redaction
Chunk-safe secret redaction.
schema
Checked-in JSON Schema generation. JSON Schema generation for Ferry Remote Build Protocol v1.
secret
Non-serializable secret values and serializable opaque references.
signing
Apple signing plans and validation models.
snapshot_session
Strict control messages for one framed SSH snapshot-build session. Strict control messages for one framed SSH snapshot-build session.
source
Deterministic Git and snapshot source manifests. Deterministic source selection for remote builds.
stdio
Strict, bounded envelopes for one-request worker stdio control planes. Strict, bounded envelopes for one-request worker stdio control planes.