module2json
module2json is a lightweight static parser for Bazel MODULE.bazel files.
- Does not evaluate Starlark
- Does not execute macros
- Only extracts:
- top-level
module(...) - top-level
bazel_dep(...)
- top-level
- Only supports literal values:
- strings
- numbers
True/FalseNone
- If
load()statements or unknown top-level calls are found, the result is marked:
"complete": falseRead manifest from standard input
module2json --stdinReading manifest from a file
module2json <FILE_PATH>--stdin
--pretty=false/true
{
"module": {
"name": "...",
"version": "..."
},
"bazel_deps": [],
"overrides": [],
"complete": true,
"warnings": []
}cat MODULE.bazel | ./module2json --stdin
{
"module": {
"name": "elemental2",
"version": "1.3.0"
},
"bazel_deps": [
{
"name": "j2cl",
"version": "20250630",
"dev_dependency": false
},
{
"name": "jsinterop_generator",
"version": "20250812",
"dev_dependency": false
},
{
"name": "jsinterop_base",
"version": "1.1.0",
"dev_dependency": false
},
{
"name": "bazel_skylib",
"version": "1.7.1",
"dev_dependency": false
},
{
"name": "google_bazel_common",
"version": "0.0.1",
"dev_dependency": false
},
{
"name": "rules_java",
"version": "8.13.0",
"dev_dependency": false
},
{
"name": "rules_license",
"version": "1.0.0",
"dev_dependency": false
},
{
"name": "rules_jvm_external",
"version": "6.6",
"dev_dependency": false
}
],
"overrides": [
{
"kind": "archive_override",
"module_name": "j2cl",
"strip_prefix": "j2cl-master"
},
{
"kind": "archive_override",
"module_name": "jsinterop_generator",
"strip_prefix": "jsinterop-generator-master"
},
{
"kind": "archive_override",
"module_name": "jsinterop_base",
"strip_prefix": "jsinterop-base-master"
}
],
"complete": false,
"warnings": [
"archive_override(urls=...) is not a literal; override info may be incomplete.",
"Found non-identifier top-level call (e.g. obj.method(...)); cannot determine whether it declares bazel_dep.",
"Found top-level call to \"http_archive\"; may declare bazel_dep via macro expansion which is not evaluated."
]
}
./module2json MODULE2.bazel{
"module": {
"name": "abseil-cpp",
"version": "20260107.0"
},
"bazel_deps": [
{
"name": "rules_cc",
"version": "0.2.9",
"dev_dependency": false
},
{
"name": "bazel_skylib",
"version": "1.8.1",
"dev_dependency": false
},
{
"name": "platforms",
"version": "1.0.0",
"dev_dependency": false
},
{
"name": "google_benchmark",
"version": "1.9.4",
"dev_dependency": true
},
{
"name": "googletest",
"version": "1.17.0",
"dev_dependency": false
}
],
"complete": true
}