SDK packages
One engine. Seventeen ways to call it.
Every package is the same native engine with the same documented API. What differs is the language you call it from and the platforms the licence covers. Pick the one that matches how you build.
Not sure? Start from what you are building.
NuGet package
One package, native engines for every runtime identifier.
Linux on Intel
Shared objects for 64-bit and 32-bit Intel Linux.
Linux on ARM
Shared objects for 64-bit and 32-bit ARM Linux.
PHP
A pure-PHP binding over FFI: no compiled extension to match.
Python
A ctypes binding: no compiled module, no build step.
ASP.NET Core
A self-contained web sample with the package bundled.
Flutter
A dart:ffi package with natives for five platforms.
Node.js
A JavaScript binding with TypeScript declarations included.
TypeScript
The Node binding with a typed surface and a TS example.
Why a package per platform, and not one big download
A package is not a marketing category. The licence key carries which one you bought, and the engine refuses that key on a platform the package does not cover — so the download and the licence always describe the same thing. It also means you are not paying for six platforms to ship on one.
Every platform list on this site is generated from the engine and the release artifacts, which is why they occasionally disagree with each other in public: where a download contains a binary the licence does not authorise, the page says so rather than choosing the flattering half.