Skip to main content
If you know Python, Sifr lets you keep much of the syntax while changing the contract around errors, missing values, mutation, imports, and async work. Start with the compact bridge, then use this guide path to replace runtime habits with compile-time guarantees.

Mental Model Shift

Learn the surprises to remove first: hints, exceptions, None, imports, and mutation.

From Python

See what carries over and what Sifr checks at compile time.

Quickstart

Write, run, and build your first Sifr program.

Error Handling

Learn how Result and try/except replace recoverable exceptions.

Ownership and Mutability

Learn mut, own, and borrow-by-default calls.

Interop by library

Walk through schwifty, NumPy, and Kafka before reading the full reference.

Learning Sequence

  1. Build the mental model: what changes from Python.
  2. Compile a first program: Quickstart.
  3. Learn everyday values: Values and Collections.
  4. Handle failure intentionally: Error Handling.
  5. Make mutation explicit: Ownership and Mutability.
  6. Use the Sifr namespace: Standard Library and Module Index.
  7. Move from scripts to packages: Packages and Workspaces.
If you only read one language page after this guide, read Ownership and Mutability. It explains why Sifr can look like Python while still compiling to safe Rust-backed binaries.