Skip to content

`bynk.toml` manifest

A bynk.toml at a project’s root marks it as a project and configures its layout. A multi-file project with a src/ and tests/ split uses one.

[project]
name = "my-project"
version = "0.1.0"
[paths]
src = "src"
tests = "tests"
out = "out"
[fmt]
indent = "tab"
max_line_width = 100
[lsp]
diagnostics_mode = "live"
KeyPurpose
namethe project’s name.
versionthe project’s version.
KeyPurpose
srcdirectory holding source units.
testsdirectory holding test units.
outdefault output directory.

In a project (split-paths) layout, source units live under src/ and test units under tests/, each at a path matching its qualified name — context commerce.orders in src/commerce/orders.bynk, test commerce.orders in tests/commerce/orders.bynk. Mismatches raise bynk.project.inconsistent_commons_name or bynk.project.inconsistent_test_path.

Formatter settings (consumed by bynkc fmt):

KeyPurpose
indentindentation style (e.g. "tab").
max_line_widthtarget maximum line width.

Language-server settings (consumed by bynkc-lsp):

KeyPurpose
diagnostics_modewhen diagnostics are computed (e.g. "live").

Without a bynk.toml, a single .bynk file compiles as a standalone unit (the first-program flow). Project features — a src/tests split, bynkc test — expect the manifest-driven layout above.