Module System
DUUMBI’s module system lets you publish, share, and reuse graph modules via the DUUMBI registry.
Config
Section titled “Config”Define dependencies in config.toml:
[workspace]name = "myapp"namespace = "myapp"default-registry = "duumbi"
[registries]duumbi = "https://registry.duumbi.dev"
[dependencies]"@duumbi/stdlib-math" = "^1.0"Installing dependencies
Section titled “Installing dependencies”duumbi deps installThis resolves versions, downloads modules to .duumbi/cache/, and creates a lockfile (deps.lock).
Publishing a module
Section titled “Publishing a module”duumbi publishThis validates the graph, packages it as .tar.gz with integrity hashes, and uploads to the configured registry.
Dependency resolution
Section titled “Dependency resolution”DUUMBI resolves modules in priority order:
- Workspace —
.duumbi/graph/(highest priority) - Vendor —
.duumbi/vendor/(pinned, audited copies) - Cache —
.duumbi/cache/(downloaded from registry) - Not found → error E011
Vendoring
Section titled “Vendoring”For reproducible offline builds:
duumbi deps vendorCLI commands
Section titled “CLI commands”| Command | Description |
|---|---|
duumbi deps install | Resolve and download all dependencies |
duumbi deps add <name> | Add a new dependency |
duumbi deps update [name] | Update to latest compatible versions |
duumbi deps vendor | Copy dependencies to vendor/ |
duumbi deps audit | Verify lockfile integrity hashes |
duumbi deps tree | Display dependency tree |
duumbi publish | Package and upload module |
duumbi search <query> | Search registries |