#zeromq #benchmark #ipc

evalsync

Experiment synchronization library for benchmark coordination via ZeroMQ

1 unstable release

0.1.0 Dec 2, 2025

#1639 in Asynchronous

MIT license

17KB
312 lines

evalsync

Experiment synchronization library for benchmark coordination via ZeroMQ.

Usage

use evalsync::{init, ready, wait_for_start, wait_for_end};

fn main() -> Result<(), String> {
    // Initialize with experiment ID and client ID
    init("my-experiment", "worker-1", true)?;

    // Signal ready state
    ready()?;

    // Wait for manager to signal start
    wait_for_start()?;

    // ... run benchmark workload ...

    // Wait for manager to signal end
    wait_for_end()?;

    Ok(())
}

Environment Variables

Alternatively, use init_env() which reads from environment variables:

  • EVALSYNC_EXPERIMENT_ID - Experiment identifier
  • EVALSYNC_CLIENT_ID - Client/worker identifier
  • EVALSYNC_VERBOSE - Set to "1" for verbose logging

License

MIT

Dependencies

~1.3–4MB
~82K SLoC