Wyzer

Do you have the patience to wait until your mud settles and the water is clear?

— Lao Tzu

Memory Model

NAME wyzer-memory - Perceus reference counting and linear types

DESCRIPTION Wyzer guarantees memory safety through static analysis and Perceus reference counting, eliminating the need for a garbage collector or complex borrow annotations.

SYNOPSIS: IN-PLACE MUTATION

fn update_list(list: [u32]) -> [u32] {
    list.push(42)
}

PERCEUS DETAILS

  • Static RC Analysis: The compiler statically tracks reference counts.
  • In-Place Mutation: If a value’s reference count is exactly 1, mutations occur in-place without heap allocations or copies.

SYNOPSIS: LINEAR TYPES

let socket = net::open("127.0.0.1:80");
net::send(socket, data); 

LINEAR TYPE DETAILS

  • Exact-Once Rule: Resources marked as linear (e.g., sockets) must be consumed exactly once.
  • Consumption: Passing a linear resource to a function (like send) consumes it. Subsequent accesses result in a compile-time error.

© 2026 Wyzer Contributors

Edit this page on GitHub