Edit source

Toolchains and platforms

Tsonic generates native source. Target toolchains build that source.

Host

ToolContract
Node.js22.18 or newer
npmInstalls project-local targets and capabilities

Install Node from the official download page and verify:

node --version
npm --version

The project creator installs the CLI and one target locally. Neither the creator nor the CLI downloads native toolchains. Do not depend on a global Tsonic installation.

C#

ItemContract
SDK.NET 10 SDK
Default target frameworknet10.0
Generated SDKMicrosoft.NET.Sdk
Stable language dialectC# 14
Optional preview dialectC# 15 preview

The selected SDK must contain the reference pack for targetFramework. Framework and assembly provider inputs are snapshotted for one compilation.

Install the .NET 10 SDK, using Microsoft’s platform instructions when needed. Confirm that a 10.0.x SDK is listed:

dotnet --version
dotnet --list-sdks

Use a user-owned project for another SDK shape. Tsonic does not change an ASP.NET, desktop, mobile, test, or custom SDK project into a generated Microsoft.NET.Sdk project.

Rust

The Rust target requires cargo, rustc, rustdoc, and rustfmt from one coherent toolchain. Tsonic runs rustfmt over every generated Rust source file before publishing the output. Missing or failed formatting rejects the target compilation; Tsonic does not publish an unformatted fallback. Clippy is used by the native validation gates.

Tsonic records the exact rustc -vV identity and consumes rustdoc JSON from that toolchain. An unsupported rustdoc schema is rejected. The project does not promise that every historical or future Rust release has the same rustdoc JSON contract.

Install Rust with rustup. A normal hosted installation can be prepared and checked with:

rustup toolchain install stable
rustup default stable
rustup component add rustfmt
rustup show active-toolchain
rustc --version
cargo --version
rustdoc --version
rustfmt --version

Clippy is optional unless you run cargo clippy. Install it from the same toolchain with rustup component add clippy.

Install cross targets with rustup target add <triple>. Cargo owns target triples and linkers.

Mojo

The current Mojo target pins SDK 1.1.0.dev2026083005 and linux-64, using a Pixi environment. Generation needs the compiler for native queries and mojo format; native building uses the generated Pixi tasks.

mojo --version
pixi run --manifest-path out/mojo/pixi.toml build

Use the Mojo setup and compiler configuration for the current source-workspace route. The published C#/Rust project creator does not install this target or its SDK.

Platform support

Tsonic itself is platform-neutral Node software. A target is usable only where its native toolchain, runtime packages, framework packs, and linker inputs are available.

Generated code does not imply deployment support. For example, selecting linux-x64 in a C# property or a Rust target triple still requires the native SDK components and platform libraries needed by that target.