SDK

SDK/ is the external-facing package for TonCut Desktop plugin developers. It contains the copied Pascal interface units, the shared C++ contract header, ready-to-open example projects, and the Markdown manuals that explain how to build plugins against the Desktop host contract.

Overview

The SDK is published on GitHub at codeton-software/toncut-plugin-sdk: clone or download it to get the Pascal and C++ headers, the example projects, and the manuals described below. This site documents that package.

Start with these files and directories:

  • SDK/README.md
  • SDK/include/cpp/TonCutPluginSdk.hpp
  • SDK/include/pascal/uITcPlugin.pas
  • SDK/include/pascal/uITonCut.pas
  • SDK/examples/
  • SDK/manuals/

Every shipped native example keeps the public host contract unchanged:

  1. Export TcpInitializeV2.
  2. Return an ITcPlugin.
  3. Report EngineVersion using the current engine version shown in the header badge.
  4. Expose
    ,
    , and
    .
  5. Build to .plg directly.

Open the SDK entrypoints

uses
  uITcPlugin,
  uITonCut,
  uITcPluginCommon;

SDK layout

The SDK is split by concern:

DirectoryPurpose
SDK/include/cpp/Shared translated C++ host contract
SDK/include/pascal/Copied Pascal source-of-truth interface units
SDK/examples/shared/Reusable starter helpers and sample CSV
SDK/examples/<language>/Buildable example projects and solutions
SDK/manuals/External-developer documentation in Markdown

The detailed layout is documented in SDK/manuals/sdk-layout.md.

Manuals

The SDK manuals are part of the package and should be referenced directly when onboarding external developers:

  • SDK/manuals/getting-started.md
  • SDK/manuals/plugin-contract-and-abi.md
  • SDK/manuals/csv-schema.md
  • SDK/manuals/building-examples.md
  • SDK/manuals/support-by-language.md
  • SDK/manuals/public-contract-units.md

Use the manuals as the canonical file-path reference. The web docs now mirror the same SDK structure and no longer point to internal TonCut/... source paths.

Example projects

Open one of these entrypoints directly:

  • Delphi: SDK/examples/delphi/CsvImportExport/CsvImportExport.dproj
  • C++Builder (untested, provided as-is): SDK/examples/cppbuilder/CsvImportExport/CsvImportExport.cbproj
  • VS C++: SDK/examples/msvc/CsvImportExport/CsvImportExport.sln
  • C#: SDK/examples/csharp/CsvImportExport/CsvImportExport.sln

The shared native starter logic lives in SDK/examples/shared/cpp/, and the round-trip sample input file lives in SDK/examples/shared/csv/example.csv.

The shipped starter now covers two output paths: source-data round trips through SaveFile and single-sheet PLT result export through SaveResult.

Starter feature set

function TCsvImportExportPlugin.GetFeatures(): TTcpFeatures;
begin
  Result := [feImport, feExport, feSaveResultToFile];
end;

The split C# starter reports that feature set from its native shim. The managed project exposes only CsvCodec, CsvRowRecord, and CsvSchema; it does not publish a direct TTcpFeatures projection.

Support levels

EnvironmentSDK status
DelphiFull native starter
C++BuilderNative starter on the shared C++ subset; never compiled or tested by the maintainers, provided as-is
VS C++Native starter on the shared C++ subset
C#Native-shim-only TonCut ABI plus managed CSV core

The detailed boundary notes live in SDK/manuals/support-by-language.md.

Was this page helpful?