Skip to content

Module System

DUUMBI’s module system lets you publish, share, and reuse graph modules via the DUUMBI registry.

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"
Terminal window
duumbi deps install

This resolves versions, downloads modules to .duumbi/cache/, and creates a lockfile (deps.lock).

Terminal window
duumbi publish

This validates the graph, packages it as .tar.gz with integrity hashes, and uploads to the configured registry.

DUUMBI resolves modules in priority order:

  1. Workspace.duumbi/graph/ (highest priority)
  2. Vendor.duumbi/vendor/ (pinned, audited copies)
  3. Cache.duumbi/cache/ (downloaded from registry)
  4. Not found → error E011

For reproducible offline builds:

Terminal window
duumbi deps vendor
CommandDescription
duumbi deps installResolve and download all dependencies
duumbi deps add <name>Add a new dependency
duumbi deps update [name]Update to latest compatible versions
duumbi deps vendorCopy dependencies to vendor/
duumbi deps auditVerify lockfile integrity hashes
duumbi deps treeDisplay dependency tree
duumbi publishPackage and upload module
duumbi search <query>Search registries