Saltar al contenido

18 · Módulos

Dependencias externas y locks

Declara dependencias una vez en el alcance del archivo. Importa los providers explícitamente; sus alias seleccionan el mismo entorno. Los imports nativos eligen los símbolos usados en cada fragmento.

En esta página

Declara dependencias una vez en el alcance del archivo. Importa los providers explícitamente; sus alias seleccionan el mismo entorno. Los imports nativos eligen los símbolos usados en cada fragmento.

Ejecuta localmente con el plugin y runtime correspondientes. Estos ejemplos no se ejecutan en el playground del navegador.

Dependencias externas y locks.

47-unified-dependencies.zolo
Playground
// Prepare once: zolo install examples/features/14-modules/47-unified-dependencies.zolo
// Requires Rust, C++/vcpkg and the JVM/Kotlin provider toolchains for preparation.
// parity-timeout-ms:300000
use plugin rust::{rust as rs}
use plugin native::{cpp}
use plugin jvm::{kotlin as kt}

deps {
    rs::serde_json = "1.0.145"
    cpp::fmt = { version = "11.0.2", default_features = true }
    kt::"com.google.guava:guava" = "33.4.0-jre"
}

extern rs fn answer() -> int {
    let value: serde_json::Value = serde_json::from_str(r#"{"answer":42}"#).unwrap();
    value["answer"].as_i64().unwrap()
}

extern cpp fn formatted(value: int) -> str {
    #include <fmt/format.h>
    return fmt::format("exact {}", value);
}

extern kt fn join(values: [str]) -> str {
    import com.google.common.base.Joiner
    return Joiner.on(", ").join(values.asIterable())
}

print(answer())
print(formatted(9007199254740993))
print(join(["Kotlin", "Maven", "Zolo"]))

// expected:
// 42
// exact 9007199254740993
// Kotlin, Maven, Zolo

Requiere la CLI o el host de Zolo; ábrelo en el playground o ejecútalo localmente.

Política de instalación

auto prepara dependencias ausentes antes de ejecutar código del usuario. manual exige un entorno preparado e informa el comando de instalación si falta. offline usa solo artefactos locales compatibles. Abrir una fuente en el editor nunca instala paquetes ni ejecuta su código.

Locks y ejecución offline

--frozen exige un lock compatible y prohíbe cambios; por sí solo no impide descargar artefactos ya fijados. Combina --offline y --frozen para impedir la red y los cambios del lock. Las versiones siguientes son pins exactos ilustrativos, no recomendaciones de las últimas versiones.

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br