bynk-driver
The shared front-end of the bynkc and bynk CLIs, for the
Bynk compiler.
Both binaries expose fmt and check with identical semantics; this crate
holds the one implementation of each command body — project rooting,
project-failure flattening, and output writing — parameterised by the
program name that prefixes messages, instead of each binary carrying its own
by-hand copy pinned together only by a parity test.
It holds:
discovery/ project rooting — picks project vs. single-tree mode the same way for every command that needs it (check,compile,test,dev).output—write_output/write_document, the real filesystem write boundary; the one place emittedDocument::Tsartefacts are printed throughbynk-ts's printer (the only code that writes a character).test_json/test_runner/coverage— the sharedtestsubcommand's JSON report shape, runner, and V8-coverage parsing.probe— toolchain detection (tsc/nodeonPATH).schema_lock— the sharedbynk.schema.lockread/write path both CLIs use.
Where it sits
This crate depends on bynk-emit,
bynk-fmt,
bynk-render, and
bynk-ts:
bynk-syntax lexer, parser, AST, CompileError, diagnostic codes
├── bynk-project project model: discovery, unit graph, paths
├── bynk-ts the TypeScript tree and its printer
├── bynk-render diagnostic rendering
├── bynk-fmt the formatter
└── bynk-check name resolution and type checking + project, std
├── bynk-ir declaration-level IR
│ └── bynk-lower AST → IR helpers
├── bynk-emit build sequencing, TS emission + ts, ir, lower, project
│ ├── bynk-strip TS → JS type-stripping + ts
│ └── bynk-driver shared CLI command bodies + fmt, render, ts
└── bynk-ide non-bailing editor analysis + project, fmt
bynk-std first-party sources and bindings, as data
Each crate depends on its parent in the tree, plus any crates listed after
its +. The front-ends sit on top: the bynkc and bynk CLIs over
bynk-driver, the bynkc-lsp language server (bynk-lsp) over bynk-ide, and
the unpublished bynk-wasm playground module over bynk-emit, bynk-strip,
and bynk-ide.
The bynkc and bynk binaries are the two front-ends built on top of it.
Use
bynk-driver is consumed by the bynkc and bynk binaries directly; it has
no standalone CLI of its own.
[]
= "0.371"
See the API docs for the full surface.
License
Licensed under either of Apache-2.0 or MIT at your option.