No description
Find a file
2023-09-07 11:50:04 -07:00
src add rolling hash, not in use yet 2023-09-06 04:09:55 -07:00
.envrc initial commit 2023-08-29 18:37:15 -07:00
.gitignore initial commit 2023-08-29 18:37:15 -07:00
.gitlab-ci.yml changed caching dir to ./result 2023-09-07 11:50:04 -07:00
cabal-only-cabal.project.local add pure cabal build instructions 2023-09-06 04:09:40 -07:00
cabal.project add pure cabal build instructions 2023-09-06 04:09:40 -07:00
flake.lock initial commit 2023-08-29 18:37:15 -07:00
flake.nix initial commit 2023-08-29 18:37:15 -07:00
haschor-rsync.cabal initial commit 2023-08-29 18:37:15 -07:00
LICENSE initial commit 2023-08-29 18:37:15 -07:00
README.md add pure cabal build instructions 2023-09-06 04:09:40 -07:00

Rsync (not really), implemented using HasChor

This is mostly a learning exercise for HasChor, a paper & library for choreographic programming in Haskell. It skips rsync's clever rotating hash & just hashes chunks, compares hashes, and transfers the difference.

Build

with cabal

mv cabal-only-cabal.project.local cabal.project.local

cabal run haschor-rsync -- syncFrom # on from file
cabal run haschor-rsync -- syncTo # on the other file

with nix

# to build
nix build
# to run
./result syncFrom # in one file
./result syncTo # in another file