> ## Documentation Index
> Fetch the complete documentation index at: https://docs-test.symmetry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Platform and Language Support

> Supported operating systems, architectures, languages, and sizing guidance for the On-Premise STE.

This page covers the operating systems, architectures, and languages supported by the locally installed On-Premise version of the Symmetry Tax Engine (STE), along with sizing guidance. (The hosted [Web API](/ste/overview/hosted-vs-on-premise) has no local requirements — you only need an HTTPS client.)

## Supported languages

The On-Premise SDK ships with native interfaces for:

* **C / C++**
* **Java**
* **.NET**

**Java** requires a Java Development Kit (JDK), **version 11 or later**.

For .NET, the distribution includes interface assemblies for several targets so you can match your existing runtime:

| Target                 | Assembly           | Status                                                                                                  |
| ---------------------- | ------------------ | ------------------------------------------------------------------------------------------------------- |
| **.NET 8**             | `ste-net-core.dll` | **Current — recommended for new development.** Cross-platform (Windows, Linux, macOS) on x64 and ARM64. |
| **.NET Standard 2.0**  | `ste-net-core.dll` | Supported and widely used. Loadable from .NET Framework 4.6.1+, .NET Core 2.0+, and .NET 5+.            |
| **.NET Standard 1.1**  | `ste-net-core.dll` | Legacy. Superseded by .NET 8.                                                                           |
| **.NET Framework 4.0** | `ste-net.dll`      | Legacy, Windows-only. Provided for backward compatibility.                                              |
| **.NET Framework 2.0** | `ste-net.dll`      | Legacy, Windows-only. Provided for backward compatibility.                                              |

<Tip>
  For new .NET integrations, target **.NET 8** (or consume the .NET Standard 2.0 assembly if you're still on .NET Framework 4.6.1–4.8). The .NET Framework 2.0 / 4.0 and .NET Standard 1.1 assemblies remain in the distribution for existing integrations only.
</Tip>

Each language has its own quickstart:

<CardGroup cols={3}>
  <Card title="Java SDK" icon="java" href="/ste/quickstarts/java-sdk-quickstart" />

  <Card title=".NET SDK" icon="microsoft" href="/ste/quickstarts/dotnet-sdk-quickstart" />

  <Card title="C/C++ SDK" icon="c" href="/ste/quickstarts/c-sdk-quickstart" />
</CardGroup>

## Operating systems and architectures

The On-Premise STE runs on **Windows**, **Linux (and other UNIX)**, and **macOS**, on both **x64 (AMD64)** and **ARM64** architectures. On Windows, both **64-bit** and legacy **32-bit** builds are available. (Running Windows on ARM is supported unofficially.) The engine's shared libraries (`ste-shared-libraries`) must be made available to your application on any platform:

<Tabs>
  <Tab title="Windows">
    Append the path to your `ste-shared-libraries` folder to the system `Path` environment variable (under **Advanced System Settings > Environment Variables > System Variables**), or copy the library files directly into your project's build output. Depending on which build you use, you will need the matching **Visual Studio redistributable** (2010, 2013, or 2022) installed.

    Both **64-bit** and **32-bit** builds are available. When targeting .NET Framework 4.5 or higher with the 64-bit engine, make sure **Prefer 32-bit** is unchecked in your project's build settings.
  </Tab>

  <Tab title="Linux / UNIX">
    The shared object (`.so`) files are usually placed in `/usr/local/lib`. To make them available to your application, add the path to your `ste-shared-libraries` folder to the `LD_LIBRARY_PATH` environment variable.
  </Tab>

  <Tab title="macOS">
    The engine ships as a universal shared library (`.dylib`) that runs on both Apple Silicon (ARM64) and Intel (x64) Macs. Make the `ste-shared-libraries` folder available to your application via `DYLD_LIBRARY_PATH`, or copy the library into your build output.
  </Tab>
</Tabs>

<Info>
  Regardless of platform, an installation consists of the `ste-interface-files`, `ste-root`, and `ste-shared-libraries` folders plus `versions.json`, and a valid `ste-license.dat` file must be present in `ste-root`.
</Info>

## Footprint and sizing

The On-Premise STE is deliberately lightweight. The engine is written in C and uses SQLite and Lua, so it runs tax calculations in milliseconds with a small on-disk footprint.

### Application footprint

The installed engine is compact. On Win64, for example:

* Tax database: **29.9 MB**
* Engine binary: **4.1 MB**

The entire STE Win64 component — with all interface files and some helper DLLs — is about **32.5 MB**.

### Sizing your environment

Symmetry does not publish fixed CPU, memory, or disk requirements for the On-Premise STE. Because the engine is so lightweight, hardware is rarely the constraint — appropriate sizing depends on your own workload (how many pay calculations you run in parallel and how you architect your application) far more than on the engine itself.

Size your machine (or machines, in an n-tier architecture) for the amount of parallel processing your workload requires. If you'd like guidance for a specific deployment, [contact Symmetry](https://support.symmetry.com/hc/en-us/requests/new).

### Concurrency and scaling

The STE is built for high-volume, parallel payroll. In a multi-threaded environment, multiple engine instances can be checked out of a built-in pool, used, and returned for reuse by other threads without re-initializing. Initialization takes only milliseconds, but across thousands or tens of thousands of pay calculations that savings adds up.
