Skip to main content

rc_core/
lib.rs

1//! rc-core: Core library for the rc S3 CLI client
2//!
3//! This crate provides the core functionality for the rc CLI, including:
4//! - Configuration management
5//! - Alias management
6//! - Path parsing and resolution
7//! - ObjectStore trait for S3 operations
8//!
9//! This crate is designed to be independent of any specific S3 SDK,
10//! allowing for easy testing and potential future support for other backends.
11
12pub mod admin;
13pub mod alias;
14pub mod config;
15pub mod cors;
16pub mod encryption;
17pub mod error;
18pub mod lifecycle;
19pub mod path;
20pub mod replication;
21pub mod retry;
22pub mod select;
23pub mod traits;
24
25pub use alias::{
26    Alias, AliasManager, RequestHeader, global_request_headers, set_global_request_headers,
27    validate_alias_endpoint,
28};
29pub use config::{Config, ConfigManager};
30pub use cors::{CorsConfiguration, CorsRule};
31pub use encryption::{BucketEncryption, ObjectEncryptionRequest};
32pub use error::{Error, Result};
33pub use lifecycle::{
34    LifecycleConfiguration, LifecycleExpiration, LifecycleRule, LifecycleRuleStatus,
35    LifecycleTransition, NoncurrentVersionExpiration, NoncurrentVersionTransition,
36};
37pub use path::{ParsedPath, RemotePath, parse_object_path, parse_path};
38pub use replication::{
39    BucketTarget, BucketTargetCredentials, ReplicationConfiguration, ReplicationDestination,
40    ReplicationRule, ReplicationRuleStatus,
41};
42pub use retry::{RetryBuilder, is_retryable_error, retry_with_backoff};
43pub use select::{
44    SelectCompression, SelectCsvFileHeaderInfo, SelectCsvInputOptions, SelectCsvOutputOptions,
45    SelectInputFormat, SelectJsonInputOptions, SelectJsonInputType, SelectJsonOutputOptions,
46    SelectOptions, SelectOutputFormat, SelectQuoteFields, SelectScanRangeOptions,
47    SelectSseCustomerOptions,
48};
49pub use traits::{
50    BucketNotification, Capabilities, ListOptions, ListResult, NotificationTarget, ObjectInfo,
51    ObjectStore, ObjectVersion, ObjectVersionListResult,
52};