edgecommons
edgecommons is a single static binary that builds and ships EdgeCommons components. It scaffolds a
component in Java, Python, Rust, or TypeScript; validates its configuration and packaging against the
canonical schema; moves it between library versions; packages and releases it; and compiles a
deployment definition into the artifacts a target platform actually consumes.
It carries the component templates and the config schema inside the binary, so scaffolding and
validation work with no network and no registry. deployment validate, render, and plan also
use local inputs. Registry queries and deployment lock use authenticated gh unless a local
catalog is supplied; component new --template-git clones a template. Packaging delegates to
external build tools, which may download dependencies, and component package --publish invokes GDK publishing.
edgecommons component new --name com.example.MyAdapter --language RUST --kind protocol-adapteredgecommons component validate --platform GREENGRASSedgecommons deployment render site.yaml --env prod --target HOSTWhere to start
Section titled “Where to start”- Tutorial — scaffold, configure, validate, and package your first component end to end. Start here if you have never used the tool.
- How-to guides — task recipes: upgrade a library version, package for Greengrass, render a deployment, wire it into CI, fix the errors you will actually hit.
- Reference — commands — every verb, argument, and flag.
- Reference — exit codes and diagnostics — what each exit code means and
what every
EC****diagnostic is telling you. - Explanation — embedded inputs, the offline deployment kernel, and the boundary between producing release files and publishing or applying them.
The command surface
Section titled “The command surface”Seven verb families, noun first:
| Family | What it does |
|---|---|
component |
new, validate, upgrade, version, package, release — the component lifecycle |
template |
list, show — inspect the templates the binary carries |
registry |
list, show, versions — query the ecosystem catalog |
deployment |
validate, lock, render, plan, release, draft — model to platform artifacts and local draft authoring; diff currently exits 5 |
studio |
serve — the Deployment Studio server over the same kernel |
doctor |
check the external tools your targets need |
completions |
generate a shell completion script |
Global flags are accepted everywhere: --json for structured diagnostics and supported command output, -q/--quiet, -v/--verbose
(repeatable), --no-color, and --yes to turn a missing prompt into a usage error instead of a
question — which is what you want in CI.
--json is not yet a uniform output contract for every verb: draft commands, for example, still
print human-readable results. See the command reference before automating them.
Requirements
Section titled “Requirements”The binary itself has no runtime dependencies. Generating a Java or TypeScript component needs no JVM
and no Node — you need a language toolchain to build what it generates, not to generate it. Run
edgecommons doctor to see what your chosen targets require.