Wyzer

The illiterates of the 21st century will not be those who cannot read and write but those who cannot learn, unlearn, and relearn.

— Alvin Toffler

Choreography and Distributed Safety

NAME wyzer-choreography - Generalized choreographic programming

DESCRIPTION Wyzer elevates network protocols to the type system. The compiler statically verifies that all network participants adhere to the protocol, preventing runtime deadlocks.

SYNOPSIS: ROLE TYPES AND TRANSFERS

fn process_payment(amount: u32@Client) {
    let data = 100;
    // ENetSend under the hood moves data from the Client to the Server
}

CHOREOGRAPHY DETAILS

  • @Role (Role Types): Associates a value with a physical network participant. u32@Client resides exclusively on the Client.
  • ENetSend / ENetRecv: Native AST primitives for network transfers.
  • Exact-Once Consumption: Transferring a role-typed value consumes it on the sender’s side. Subsequent access attempts trigger compile-time errors, preventing data races across the network.

© 2026 Wyzer Contributors

Edit this page on GitHub