良い選択。

既存のクライアントと互換性のある「rsync」クライアントではなく、サンプルプログラムを作成したいと仮定すると、この簡素化されたプランに従うことができます。

1.たとえば、https：//www.cs.tufts.edu/~nr/rsync.htmlなど、 `rsync`アルゴリズムの背後にある理論について読む
2.ブロックあたりの指紋を計算するモジュールを錆びて記述し、固定データのテストを作成することにより、それが機能することを自分自身に示します。
3.特定のファイル上のすべてのブロックの指紋を計算するモジュールを書き込みます。サンプルデータに自動化されたテストを作成することで、うまく機能することを確認してください。
4.一般的なネットワーキングプロトコルの1つについて読んでください。Zeromq、https：//zguide.zeromq.org/docs/chapter1/から
5.クライアントとサーバーのサンプルを記述します。クライアントがサーバーに接続してメッセージを送信できます。サーバーを起動し、クライアントを起動し、クライアントにサーバーに接続してメッセージを送信し、最後にクライアントとサーバーをシャットダウンするスクリプトを作成することで機能することを自分で示します。
6.以前に記述されたモジュールでクライアントを拡張します。これにより、送信されたメッセージがメッセージではなく「rsync」ファイルの指紋が表示されます。この時点で、サーバーが受信したメッセージがクライアントによって送信されたメッセージと同じであることをテストするだけで十分です。
7.サーバーを拡張して、持っているファイルの指紋を計算し、クライアントから受け取った指紋と比較します。

これは完全な計画ではありませんが、ここから計画に関する簡単なことを続ける必要があります。少しの機能を追加し、テストを追加します。

より多くの手順または特定の手順を使用してサポートが必要な場合はお知らせください。
Good choice. 

Assuming that you want to create an example program, and not a `rsync` client that is compatible with existing clients, you can follow this simplified plan:

1. Read about the theory behind `rsync` algorithm, for example, at https://www.cs.tufts.edu/~nr/rsync.html 
2. Write the module that computes the per-block fingerprint, in rust, and demonstrate to yourself that it works, by writing tests on a fixed data.
3. Write the module that computes the fingerprint for all blocks on a given file. Make sure that it works well by writing an automated test on an example data.
4. Read about one of the common networking protocols, e.g. ZeroMQ, from https://zguide.zeromq.org/docs/chapter1/
5. Write an example client and server, where the client can connect to the server and send an example message. Demonstrate to yourself that it works by writing a script that will start the server, start the client, have the client to connect to the server and send a message, and finally, shut down the client and server.
6. Extend the client with the modules written previously, so that the message sent are the `rsync` file fingerprints, rather than the example message. At this point, it will be enough to test that the message received by the server is the same that has been sent by the client. 
7. Extend the server to compute the fingerprints on the file that it has, AND compare it with the fingerprints received from the client. 

This is not a complete plan, but from here on the plan should be simple to continue: write a small additional bit of functionality, and add a test. 

Please let me know if you need help with more steps or with any of the particular steps.