Technical articles about RsyncUI’s implementation, architecture, and advanced concepts.
Number of files
Numbers updated: February 2, 2026 (version 0.5.0). There is also a Quality Analysis Report of the code for the app.
PhotoCulling depends only on the standard Swift and SwiftUI toolchain—no external libraries.
cloc DecodeEncodeGeneric/Sources ParseRsyncOutput/Sources RsyncArguments/Sources PhotoCulling/PhotoCulling RsyncProcessSt
reaming/Sources
74 text files.
74 unique files.
9 files ignored.
github.com/AlDanial/cloc v 2.08 T=0.03 s (2218.8 files/s, 223771.8 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Swift 74 1026 1043 5394
-------------------------------------------------------------------------------
SUM: 74 1026 1043 5394
-------------------------------------------------------------------------------
Main Repository
- PhotoCulling (https://github.com/rsyncOSX/PhotoCulling) - the main repository for PhotoCulling
Swift Packages used by RsyncUI
All packages track the main branch and are updated to latest revisions as of v0.5.0:
DecodeEncodeGeneric - Generic JSON codec
- Repository: https://github.com/rsyncOSX/DecodeEncodeGeneric
- Purpose: Reusable JSON encoding/decoding utilities
ParseRsyncOutput - Rsync output parser
- Repository: https://github.com/rsyncOSX/ParseRsyncOutput
- Purpose: Extract statistics from rsync output
RsyncArguments - Rsync argument builder
- Repository: https://github.com/rsyncOSX/RsyncArguments
- Purpose: Type-safe rsync command generation
RsyncProcessStreaming - Streaming process handler
- Repository: https://github.com/rsyncOSX/RsyncProcessStreaming
- Purpose: Real-time rsync output streaming and progress tracking