Skip to content

jonandonigv/FileSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileSync

FileSync is a distributed file synchronization system written in Go that keeps directories in sync across multiple nodes with strong consistency guarantees. It uses the Raft consensus algorithm to coordinate writes across the cluster — ensuring no two nodes disagree on file state — and a peer-to-peer transport layer (libp2p + QUIC) for direct, encrypted file transfer without a central server. Under the hood, files are split into content-defined chunks using Rabin fingerprinting, so only the parts of a file that actually changed are transferred across the network. A Merkle tree diff engine compares chunk trees between peers to identify exactly which chunks are missing or stale, keeping sync traffic minimal even for large files. The result is a system that behaves like Dropbox — seamless background sync — but is fully decentralized, tolerates node failures and network partitions, and gives you the consistency guarantees of a distributed database rather than eventual-consistency best-effort syncing.

FileSync is a distributed file synchronization system written in Go that keeps directories in sync across multiple nodes with strong consistency guarantees. It uses the Raft consensus algorithm to coordinate writes across the cluster — ensuring no two nodes disagree on file state — and a peer-to-peer transport layer (libp2p + QUIC) for direct, encrypted file transfer without a central server. Under the hood, files are split into content-defined chunks using Rabin fingerprinting, so only the parts of a file that actually changed are transferred across the network. A Merkle tree diff engine compares chunk trees between peers to identify exactly which chunks are missing or stale, keeping sync traffic minimal even for large files. The result is a system that behaves like Dropbox — seamless background sync — but is fully decentralized, tolerates node failures and network partitions, and gives you the consistency guarantees of a distributed database rather than eventual-consistency best-effort syncing.

About

A distributed file synchronization service that keeps directories consistent across multiple nodes using metadata reconciliation and peer-to-peer file transfer. The system implements eventual consistency, version-based conflict detection, and fault-tolerant resynchronization after node failures.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors