docs: align compatibility guidance
CI / lint (pull_request) Failing after 2s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped

This commit is contained in:
2026-08-15 13:41:23 +02:00
parent de537810e5
commit 6b7213db5c
2 changed files with 21 additions and 17 deletions
+19 -15
View File
@@ -45,7 +45,7 @@ replacement for every rsync feature or protocol mode.
- Recursive directory scanning. - Recursive directory scanning.
- Rsync-style source and destination arguments. - Rsync-style source and destination arguments.
- SSH transport using `user@host:/path` destinations. - SSH transport using `user@host:destination` paths below the remote authorized root.
- TCP client/server transfers. - TCP client/server transfers.
- Dry runs, excludes, includes, size filters, backups, statistics, and - Dry runs, excludes, includes, size filters, backups, statistics, and
bandwidth limiting. bandwidth limiting.
@@ -79,8 +79,10 @@ partial, alternate, and planned behavior.
### Build ### Build
Requirements: C11 compiler, CMake 3.22 or newer, zstd, OpenSSL, pthreads, Requirements: C11 compiler, CMake 3.22 or newer, xxHash, zstd, OpenSSL,
and an SSH client for SSH transport. pthreads, and an SSH client for SSH transport. The first CMake configure fetches
xxHash from GitHub, so network access is required unless the dependency is
already cached.
```bash ```bash
cmake -B build -S . cmake -B build -S .
@@ -98,10 +100,12 @@ cmake --build build -j$(nproc)
### SSH transfer ### SSH transfer
The remote host must have `fastsync-server` available in `PATH`, or use The remote host must have `fastsync-server` available in `PATH`, or use
`--fastsync-server-path`. `--fastsync-server-path`. SSH starts `fastsync-server --stdio` in its remote
working directory, so use a destination below that directory unless the
remote server is otherwise configured with a matching authorized root.
```bash ```bash
./build/client /path/to/source user@host:/path/to/destination ./build/client /path/to/source user@host:destination
``` ```
### TCP transfer ### TCP transfer
@@ -140,30 +144,30 @@ FastSync-native are optional performance or transport extensions.
./build/client /source/ /destination/ ./build/client /source/ /destination/
# Archive-style synchronization (current FastSync archive behavior) # Archive-style synchronization (current FastSync archive behavior)
./build/client -a /source/ user@host:/destination/ ./build/client -a /source/ user@host:destination/
# Preview a transfer without changing the destination # Preview a transfer without changing the destination
./build/client -n /source/ /destination/ ./build/client -n /source/ /destination/
# Exclude temporary and object files # Exclude temporary and object files
./build/client --exclude '*.tmp' --exclude '*.o' \ ./build/client --exclude '*.tmp' --exclude '*.o' \
/source/ user@host:/destination/ /source/ user@host:destination/
# Remove destination entries not present in the source # Remove destination entries not present in the source
./build/client --delete /source/ user@host:/destination/ ./build/client --delete /source/ user@host:destination/
# Skip unchanged files using size and modification time # Skip unchanged files using size and modification time
./build/client --incremental /source/ user@host:/destination/ ./build/client --incremental /source/ user@host:destination/
# Verify content when size and time are not sufficient # Verify content when size and time are not sufficient
./build/client --incremental --checksum /source/ user@host:/destination/ ./build/client --incremental --checksum /source/ user@host:destination/
# Preserve supported mode and timestamp metadata # Preserve supported mode and timestamp metadata
./build/client -M /source/ user@host:/destination/ ./build/client -M /source/ user@host:destination/
# Keep backups of overwritten destination files # Keep backups of overwritten destination files
./build/client --backup --backup-dir /backups \ ./build/client --backup --backup-dir backups \
/source/ user@host:/destination/ /source/ user@host:destination/
``` ```
## FastSync Extensions ## FastSync Extensions
@@ -217,8 +221,8 @@ before FastSync can claim full rsync CLI compatibility.
| `--backup` | Back up overwritten files. | | `--backup` | Back up overwritten files. |
| `--backup-dir <dir>` | Store backups under a separate directory. | | `--backup-dir <dir>` | Store backups under a separate directory. |
| `--suffix <suffix>` | Set the backup filename suffix. | | `--suffix <suffix>` | Set the backup filename suffix. |
| `--partial` | Keep received data under the configured partial location. Full resume semantics are planned. | | `--partial` | Select partial-transfer handling. With `--partial-dir`, completed files are written there; resumable transfers are not implemented. |
| `--partial-dir <dir>` | Set the partial transfer directory. | | `--partial-dir <dir>` | Set a relative partial-transfer directory below the server destination root; use with `--partial`. |
| `--inplace` | Write directly to the destination instead of using a temporary file. | | `--inplace` | Write directly to the destination instead of using a temporary file. |
### Metadata and links ### Metadata and links
+2 -2
View File
@@ -152,14 +152,14 @@ This document maps rsync's full feature set to FastSync's current implementation
| Flag | Rsync Description | FastSync Status | Notes | | Flag | Rsync Description | FastSync Status | Notes |
|------|-------------------|-----------------|-------| |------|-------------------|-----------------|-------|
| `-S`, `--sparse` | Sparse block handling | ✅ Implemented | `preserve_sparse` config field | | `-S`, `--sparse` | Sparse block handling | ⚠️ Partial | Flag is accepted, but full hole preservation is not implemented |
| `--preallocate` | Allocate dest files before writing | ❌ Not Implemented | | | `--preallocate` | Allocate dest files before writing | ❌ Not Implemented | |
## 11. Checksum & Comparison ## 11. Checksum & Comparison
| Flag | Rsync Description | FastSync Status | Notes | | Flag | Rsync Description | FastSync Status | Notes |
|------|-------------------|-----------------|-------| |------|-------------------|-----------------|-------|
| `--checksum` | Skip based on checksum | ❌ Not Implemented | Removed because it had no effect; `-c` means compression | | `--checksum` | Skip based on checksum | Implemented | With `--incremental`, compares xxHash64 content checksums; `-c` remains compression |
| `--checksum-choice=STR` | Choose checksum algorithm | ❌ Not Implemented | xxHash used internally | | `--checksum-choice=STR` | Choose checksum algorithm | ❌ Not Implemented | xxHash used internally |
| `--compare-dest=DIR` | Compare dest files relative to DIR | ❌ Not Implemented | Removed because it had no effect | | `--compare-dest=DIR` | Compare dest files relative to DIR | ❌ Not Implemented | Removed because it had no effect |
| `--copy-dest=DIR` | Include copies of unchanged files | ❌ Not Implemented | Removed because it had no effect | | `--copy-dest=DIR` | Include copies of unchanged files | ❌ Not Implemented | Removed because it had no effect |