5 releases
Uses new Rust 2024
| new 0.2.1 | Oct 30, 2025 |
|---|---|
| 0.2.0 | Feb 25, 2025 |
| 0.1.2 | Nov 15, 2023 |
| 0.1.1 | Nov 15, 2023 |
| 0.1.0 | Sep 7, 2023 |
#1454 in Filesystem
33KB
735 lines
Crate for syncing files between (theoretically) arbitrary sources. For example, syncing local files to an S3 bucket.
Example
use filesync::{
local::LocalFiles,
s3::S3Files,
};
let config = aws_config::load_from_env().await;
let client = aws_sdk_s3::Client::new(&config);
let mut local = LocalFiles::new("./my_local_files", true);
let mut s3 = S3Files::new(client, "my_s3_bucket", "path/in/bucket", true);
let synced_paths = filesync::sync_one_way(&mut local, &mut s3).await?;
assert_eq!(synced_paths, vec![PathBuf::from("my_changed_file.txt")]);
filesync
[![build_badge]][build_url]

Simple Rust library to sync files between different sources.
Currently supports:
- Local files
- S3 (
s3feature)
Usage
use filesync::{
local::LocalFiles,
s3::S3Files,
};
let config = aws_config::load_from_env().await;
let client = aws_sdk_s3::Client::new(&config);
let mut local = LocalFiles::new("./my_local_files", true);
let mut s3 = S3Files::new(client, "my_s3_bucket", "path/in/bucket", true);
let synced_paths = filesync::sync_one_way(&mut local, &mut s3).await?;
assert_eq!(synced_paths, vec![PathBuf::from("my_changed_file.txt")]);
Dependencies
~5–23MB
~248K SLoC