Skip to main content

Networked Services

DFIR provides a robust framework for developing networked services. The best way to get started is to use the DFIR template.

cargo generate gh:hydro-project/dfir-template

cd into the generated folder, ensure the correct nightly version of rust is installed, and test the generated project:

cd <my-project>
rustup update
cargo test

The template contains a chat server & client implementation using UDP. You can start multiple instances of the client and connect to the same server.

Things to Check​

  • README - Contains instructions on building the template and running the client and server examples.
  • server.rs - Contains the chat server implementation. The inline rust documentation explains the networking-related DFIR operators and their usage.
  • client.rs - Contains the chat client implementation. The inline rust documentation explains the networking-related DFIR operators and their usage.

DFIR also supports TCP for reliable, connection-oriented communication. Understanding the differences and use cases of these protocols can help you choose the right one for your networked service.

Additional Examples​

The DFIR examples directory contains additional examples that deal with networking. For example, the Randomized Gossip Server example extends the chat example to work with a cluster of redundant servers that use gossip for sharing chat-related state between themselves.