Skip to main content

Crate rc_core

Crate rc_core 

Source
Expand description

rc-core: Core library for the rc S3 CLI client

This crate provides the core functionality for the rc CLI, including:

  • Configuration management
  • Alias management
  • Path parsing and resolution
  • ObjectStore trait for S3 operations

This crate is designed to be independent of any specific S3 SDK, allowing for easy testing and potential future support for other backends.

Re-exports§

pub use alias::Alias;
pub use alias::AliasManager;
pub use alias::RequestHeader;
pub use alias::global_request_headers;
pub use alias::set_global_request_headers;
pub use alias::validate_alias_endpoint;
pub use config::Config;
pub use config::ConfigManager;
pub use cors::CorsConfiguration;
pub use cors::CorsRule;
pub use encryption::BucketEncryption;
pub use encryption::ObjectEncryptionRequest;
pub use error::Error;
pub use error::MultipartAbortStatus;
pub use error::Result;
pub use lifecycle::LifecycleConfiguration;
pub use lifecycle::LifecycleExpiration;
pub use lifecycle::LifecycleRule;
pub use lifecycle::LifecycleRuleStatus;
pub use lifecycle::LifecycleTransition;
pub use lifecycle::NoncurrentVersionExpiration;
pub use lifecycle::NoncurrentVersionTransition;
pub use multipart_copy::DEFAULT_MULTIPART_COPY_PART_SIZE;
pub use multipart_copy::MultipartCopyCancellation;
pub use multipart_copy::MultipartCopyOptions;
pub use multipart_copy::MultipartCopyPart;
pub use multipart_copy::MultipartCopyPlan;
pub use multipart_copy::MultipartCopyProgress;
pub use multipart_copy::MultipartCopyResult;
pub use multipart_copy::S3_MAX_OBJECT_SIZE;
pub use multipart_copy::S3_MULTIPART_COPY_MAX_PART_SIZE;
pub use multipart_copy::S3_MULTIPART_COPY_MAX_PARTS;
pub use multipart_copy::S3_MULTIPART_COPY_MIN_PART_SIZE;
pub use multipart_copy::S3_SINGLE_COPY_MAX_SIZE;
pub use multipart_copy::requires_multipart_copy;
pub use object_lock::BucketObjectLockConfiguration;
pub use object_lock::DefaultRetention;
pub use object_lock::LegalHoldStatus;
pub use object_lock::ObjectLockOptions;
pub use object_lock::ObjectRetention;
pub use object_lock::RetentionDuration;
pub use object_lock::RetentionDurationUnit;
pub use object_lock::RetentionMode;
pub use ops::HealthApi;
pub use ops::HealthProbe;
pub use ops::HealthReport;
pub use ops::UsageBucket;
pub use ops::UsageFailure;
pub use ops::UsageReport;
pub use ops::UsageScanApi;
pub use ops::UsageScanRequest;
pub use ops::UsageScope;
pub use ops::UsageSnapshotApi;
pub use ops::UsageSource;
pub use path::ParsedPath;
pub use path::RemotePath;
pub use path::parse_object_path;
pub use path::parse_path;
pub use replication::BucketTarget;
pub use replication::BucketTargetCredentials;
pub use replication::ReplicationCheckPhase;
pub use replication::ReplicationCheckPhaseState;
pub use replication::ReplicationCheckPhases;
pub use replication::ReplicationCheckResult;
pub use replication::ReplicationCheckStatus;
pub use replication::ReplicationCheckTarget;
pub use replication::ReplicationConfiguration;
pub use replication::ReplicationDestination;
pub use replication::ReplicationResyncStartOptions;
pub use replication::ReplicationResyncStartResult;
pub use replication::ReplicationResyncState;
pub use replication::ReplicationResyncStatus;
pub use replication::ReplicationResyncTargetStatus;
pub use replication::ReplicationRule;
pub use replication::ReplicationRuleStatus;
pub use retry::RetryBuilder;
pub use retry::is_retryable_error;
pub use retry::retry_with_backoff;
pub use select::SelectCompression;
pub use select::SelectCsvFileHeaderInfo;
pub use select::SelectCsvInputOptions;
pub use select::SelectCsvOutputOptions;
pub use select::SelectInputFormat;
pub use select::SelectJsonInputOptions;
pub use select::SelectJsonInputType;
pub use select::SelectJsonOutputOptions;
pub use select::SelectOptions;
pub use select::SelectOutputFormat;
pub use select::SelectQuoteFields;
pub use select::SelectScanRangeOptions;
pub use select::SelectSseCustomerOptions;
pub use traits::AbortMultipartUploadRequest;
pub use traits::BucketNotification;
pub use traits::Capabilities;
pub use traits::CopyObjectOptions;
pub use traits::CreateBucketOptions;
pub use traits::DeleteObjectFailure;
pub use traits::DeleteObjectsResult;
pub use traits::DeleteRequestOptions;
pub use traits::DeletedObject;
pub use traits::ListObjectVersionsOptions;
pub use traits::ListOptions;
pub use traits::ListResult;
pub use traits::MultipartIdentity;
pub use traits::MultipartUpload;
pub use traits::MultipartUploadListOptions;
pub use traits::MultipartUploadListResult;
pub use traits::NotificationTarget;
pub use traits::ObjectInfo;
pub use traits::ObjectReadOptions;
pub use traits::ObjectStore;
pub use traits::ObjectVersion;
pub use traits::ObjectVersionIdentifier;
pub use traits::ObjectVersionListResult;
pub use transfer::TransferCancellation;
pub use transfer::TransferCandidate;
pub use transfer::TransferControls;
pub use transfer::TransferExecutor;
pub use transfer::TransferOutcome;
pub use transfer::TransferOutcomeState;
pub use transfer::TransferPlan;
pub use transfer::TransferReport;
pub use transfer::TransferSelection;
pub use transfer::TransferSummary;
pub use transfer_options::ChecksumAlgorithm;
pub use transfer_options::ChecksumRequest;
pub use transfer_options::MetadataDirective;
pub use transfer_options::ObjectAttributes;
pub use transfer_options::ObjectChecksum;
pub use transfer_options::ObjectTransferMetadata;
pub use transfer_options::ObjectWriteEncryption;
pub use transfer_options::ObjectWriteOptions;
pub use transfer_options::SseCustomerKey;
pub use transfer_options::TaggingDirective;
pub use transfer_options::TransferCopyOptions;
pub use transfer_options::TransferReadOptions;
pub use undo::UndoAction;
pub use undo::UndoObjectResult;
pub use undo::UndoOutcome;
pub use undo::UndoPlan;
pub use undo::UndoPlanItem;
pub use undo::plan_object_undo;
pub use watch::WatchApi;
pub use watch::WatchEvent;
pub use watch::WatchFrame;
pub use watch::WatchRequest;
pub use watch::WatchSource;
pub use watch::WatchStream;

Modules§

admin
Admin API module
alias
Alias management
config
Configuration management
cors
Bucket CORS configuration types
encryption
Bucket and object encryption domain types.
error
Error types for rc-core
lifecycle
Lifecycle (ILM) configuration types
multipart_copy
Pure planning and request types for multipart server-side copies.
object_lock
Typed Object Lock, retention, and legal-hold models.
ops
Typed operational APIs for health probes and storage usage.
path
Path parsing and resolution
replication
Bucket replication configuration types
retry
Retry mechanism with exponential backoff and jitter
select
S3 Select domain types (no AWS SDK types).
traits
ObjectStore trait definition
transfer
Shared planning and execution primitives for bulk transfers.
transfer_options
Backend-neutral options for faithful object reads, writes, and copies.
undo
Pure planning models for safe undo of versioned object operations.
watch
Live object notification streaming contracts.