Skip to content

Repository files navigation

Kasumi

Kasumi is a bidirectional file synchronizer written in C++23 for Linux and Windows. It synchronizes directories across multiple machines through shared storage, including local filesystems, network shares, and rclone-compatible remotes. Machines synchronize independently, encrypt data on the client side, and do not need to be online at the same time.

Machine A ───┐
             │
Machine B ───┼──> Shared Storage
             │
Machine C ───┘

Kasumi records synchronization states as immutable commits in a shared history DAG. Clients can publish concurrently without an exclusive global synchronization lock. Concurrent publications form branches that are reconciled during subsequent synchronization.

Features

  • Multi-Master Synchronization: Multiple machines publish changes independently without a dedicated Kasumi coordination server.
  • Client-Side Encryption: File contents and synchronization history are encrypted and authenticated before remote storage.
  • Immutable History: State transitions are stored as immutable commits in a directed acyclic graph (DAG).
  • Shared Storage Backends: Supports local filesystems, network shares, and rclone-compatible remotes.
  • Conflict Reconciliation: Concurrent divergent branches are reconciled deterministically.
  • Transaction Recovery: Interrupted operations are tracked in a transaction journal.
  • Linux and Windows: Native builds for Linux and Windows.

Documentation

License

Kasumi is released under the MIT License. Third-party components retain their respective licenses; see Third-Party Notices.

About

Kasumi - Bidirectional file synchronization with client-side encryption over any cloud or storage, without dedicated server

Topics

Resources

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages