heartbeat.rs

Overview

A high-performance heartbeat client to check pulse of TCP servers. It utilizes TCP's [connection handshake] mechanism without even sending a client payload so it doesn't flood a network with client payloads.

Example:

```rust extern crate heartbeat;

use std::net::SocketAddr; use heartbeat::PulseResult;

// a handler to handle the result of a heartbeat pulse fn do_nothing(res: PulseResult) { match res { Ok(addr) => println!("found pulse for {:?}", addr), Err(addr) => println!("no pulse for {:?}", addr) } }

fn main() { let servers: Vec = ...; let freqms: u32 = 5 * 1000; let client = heartbeat::load(servers, donothing, freq_ms).unwrap(); client.start(); } ```

It is designed to be simple and efficient to embed into your own application.

Configuration

The TCP servers that you wish to check pulses of are added by specifying them in a TOML configuration file like this:

```toml

Heartbeat.toml

[configuration] servers = ["127.0.0.1:8080", "127.0.0.1:6767"] frequency = 5000 ```