Programs

std.env

Hosted environment variable lookup.

When To Use std.env

In Zerolang, use std.env for hosted environment variable lookup and simple typed configuration values.

Runnable today:

APIReturnNotes
std.env.get(name)Maybe<String>Returns a hosted process environment value when present.
std.env.has(name)BoolReports whether a hosted environment variable exists.
std.env.getOr(name, fallback)StringReturns the environment value or a caller-provided fallback.
std.env.equals(name, expected)BoolCompares an environment value with expected text without exposing a missing value as success.
std.env.parseBool(name)Maybe<Bool>Parses an environment value as Bool.
std.env.parseBoolOr(name, fallback)BoolParses a boolean environment value or returns a caller-provided fallback.
std.env.parseI32(name)Maybe<i32>Parses an environment value as i32.
std.env.parseI32Or(name, fallback)i32Parses an i32 environment value or returns a caller-provided fallback.
std.env.parseU32(name)Maybe<u32>Parses an environment value as u32.
std.env.parseU32Or(name, fallback)u32Parses a u32 environment value or returns a caller-provided fallback.
std.env.parseUsize(name)Maybe<usize>Parses an environment value as usize.
std.env.parseUsizeOr(name, fallback)usizeParses a usize environment value or returns a caller-provided fallback.

Current limits:

  • Dotenv/source composition.
  • Secret redaction metadata.
  • Rich diagnostics for missing keys, invalid values, and source precedence.

Example

pub fn main(world: World) -> Void raises {    let mode: String = std.env.getOr("ZERO_MODE", "default")    let verbose: Bool = std.env.parseBoolOr("ZERO_VERBOSE", false)    let delta: i32 = std.env.parseI32Or("ZERO_DELTA", 0)    let limit: u32 = std.env.parseU32Or("ZERO_LIMIT", 10)    let workers: usize = std.env.parseUsizeOr("ZERO_WORKERS", 1)    if std.env.equals("ZERO_MODE", "debug") && verbose && delta >= 0 && limit > 0_u32 && workers > 0 {        check world.out.write(mode)        check world.out.write("\n")    } else {        check world.out.write("default\n")    }}

Design Notes

Environment access is a hosted capability. Non-host targets reject std.env unless they explicitly provide an environment capability.

Diagnostics name the selected target context.