One project definition from editor to release.Build C and C++ with a pinned, repeatable workflow.

Bootstrap C and C++ projects

Tetrodotoxin's Bazel toolchain turns one project definition into the repository's development and release environment. The project retains its own architecture.

Compiler

Bazel acquires the Clang and target SDK versions selected by the repository.

Editor

One target generates the formatter, build, validation and debugging setup used by VS Code.

Validation

Source policy and runtime validation use the same repository entry points.

SDK

Published packages retain component boundaries and platform link requirements.

Automate the development loop

The root targets are the public workflow. The command line and generated editor tasks call them directly.

bazel run :vscode
bazel run :format -- --check
bazel build //source/...
bazel run :tests
bazel run :benchmarks --config=release
bazel build :sdk --config=release
bazel run :snapshot

Conventional project layout

source/ owns the library. validation/ supplies tests, benchmarks and runtime data to the shared root targets.

Native execution

Tests and benchmarks are standalone programs, so the same binary can run under Bazel, a debugger or an independent validation host.

Windows and Web targets

Cross-builds use pinned target SDKs. Web validation can execute through the pinned Node host when the project supports it.

Rebuildable releases

Binary SDKs carry their declared link dependencies. Source snapshots preserve the clean repository that produced a release.

Start with a versioned release

Toolchain 0.4.1 publishes the reproducible source archive and hash used by current Tetrodotoxin projects. Pin that archive in MODULE.bazel, choose the targets your project supports and let Bazel acquire the matching environment.