1. 8
  1.  

    1. 7

      I figured I would share this demo as a way to make folks aware that my gokrazy/rsync module can be used as a library — both its client and its server accept the io.ReadWriter interface type :)

      1.  

        I mostly like gokrazy for stateless systems though I know it supports persistent storage. I assume the rsync module is for file transfer to make a gokrazy system more stateful?

        1.  

          Yes, gokrazy is stateless by default, with a permanent partition for data you want to keep.

          One great use-case for rsync in this scenario is to offer downloading the permanent partition contents for backups as described at https://gokrazy.org/userguide/rsync-backups/

          Another use-case I recently had is to copy static website files onto /perm/srv for serving with the Caddy web server. After installing gokrazy/rsync on my router (https://router7.org/), I can now use normal rsync commands to send data from my PC to /perm/srv :)

      2.  

        This looks like a solution looking for a problem. I’ve heard lots of things about grpc being absurdly complex. I think it’s cool, but I think I’ll stick with SSH. Thank you very much.

        1.  

          They said it pretty clearly

          This is a demo program to show how to use the gokrazy/rsync module over a gRPC transport.

          1.  

            Indeed :) The point is not to get anyone to use rsync over gRPC, but to demonstrate that if you are already working in a corporate (or similar) environment with a landscape of RPC services using gRPC, Thrift, etc., you can now also speak rsync protocol over those channels, if it helps your project.

          2.  

            Upstream SSH with the static buffers or hpn-ssh?

            I just use upstream and accept the inefficiency these days. But if I was doing more performance critical things, it would be an issue.

            1.  

              When scp is too slow, use qcp which is designed to do well with high-bandwidth high-latency lossy links.