18 · Módulos
Dependências estrangeiras e locks
Declare dependências uma vez no escopo do arquivo. Providers precisam ser importados explicitamente; aliases escolhem o mesmo ambiente do provider original. Imports nativos ainda selecionam os símbolos usados em cada fragmento.
Nesta página
Declare dependências uma vez no escopo do arquivo. Providers precisam ser importados explicitamente; aliases escolhem o mesmo ambiente do provider original. Imports nativos ainda selecionam os símbolos usados em cada fragmento.
Execute localmente com o plugin e runtime correspondentes. Estes exemplos não rodam no playground do navegador.
Dependências estrangeiras e locks.
// 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
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Política de instalação
auto prepara dependências ausentes antes de executar código do usuário. manual exige um ambiente preparado e informa o comando de instalação quando faltar. offline usa apenas artefatos locais compatíveis. Abrir uma fonte no editor nunca instala pacotes nem executa seu código.
Locks e execução offline
--frozen exige um lock compatível e proíbe alterações; sozinho, não impede baixar artefatos já fixados. Combine --offline e --frozen para impedir rede e mudanças no lock. As versões abaixo são pins exatos ilustrativos, não recomendações das versões mais recentes.
Veja também