Módulos, projetos e pacotes
Um módulo local pode ser um arquivo irmão:
// math_lib.nova
pub fn add(a: int, b: int) -> int {
return a + b;
}
// main.nova
import math_lib::add;
fn main() -> void {
print(add(20, 22));
}
Também existem import math, glob math::*, alias as e mod nome { ... },
mas aliases, privacidade e colisões entre módulos têm cobertura limitada.
Imports circulares são diagnosticados.
Manifesto
[package]
name = "calculator"
version = "0.1.0"
entry = "main.nova"
[dependencies]
math_lib = { path = "../math_lib" }
nova install .
nova deps .
nova package .
O gerenciador é experimental: dependências são diretas, o registro é local em
~/.nova/registry, e ainda não há resolução SemVer transitiva, checksums
obrigatórios nem instalação transacional. nova publish não publica na
internet. Revise dependências manualmente e versione nova.lock.