hopper-runtime 0.2.0

Canonical low-level runtime surface for Hopper. Hopper Native is the primary backend; legacy Pinocchio and solana-program compatibility are explicit opt-ins.
Documentation
fn main() {
    const BACKENDS: [(&str, &str); 3] = [
        (
            "CARGO_FEATURE_HOPPER_NATIVE_BACKEND",
            "hopper-native-backend",
        ),
        (
            "CARGO_FEATURE_LEGACY_PINOCCHIO_COMPAT",
            "legacy-pinocchio-compat",
        ),
        (
            "CARGO_FEATURE_SOLANA_PROGRAM_BACKEND",
            "solana-program-backend",
        ),
    ];

    let enabled: Vec<&'static str> = BACKENDS
        .iter()
        .filter_map(|(env, name)| std::env::var_os(env).map(|_| *name))
        .collect();

    if enabled.len() == 1 {
        return;
    }

    let enabled = if enabled.is_empty() {
        "none".to_string()
    } else {
        enabled.join(", ")
    };

    eprintln!(
        "Enable exactly one Hopper backend for hopper-runtime: \
         hopper-native-backend, legacy-pinocchio-compat, or solana-program-backend. \
         Enabled: {enabled}"
    );
    std::process::exit(1);
}