> For the complete documentation index, see [llms.txt](https://docs.viesus.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.viesus.com/reference/overview.md).

# C/C++ SDK

The VIESUS CLI, PDF Enhancer, and Node.js module are all built on the same C++ enhancement library. The SDK gives you direct access to that library — enhancement becomes a function call inside your application rather than an external subprocess.

{% hint style="info" %}
The SDK is the highest-effort integration option. **Most teams should start with the** [**CLI**](/reference/cli-reference.md)**, the** [**Node.js Module**](/reference/node.js-module/overview.md)**, or the** [**Cloud API**](/reference/cloud-api/overview.md)**.** Use the SDK only when those don't meet your needs.
{% endhint %}

***

## When to use the SDK

<table><thead><tr><th width="272.39990234375">Use case</th><th>Why the SDK</th></tr></thead><tbody><tr><td><strong>Tight latency budget</strong></td><td>No subprocess startup cost per image. The library stays loaded in your process.</td></tr><tr><td><strong>High-frequency calls</strong></td><td>Worth avoiding the CLI's per-call overhead when you process tens of thousands of small operations.</td></tr><tr><td><strong>Existing C/C++ stack</strong></td><td>Native linking is cleaner than shelling out to the CLI from C/C++.</td></tr><tr><td><strong>Custom pipeline integration</strong></td><td>Embed enhancement inside an existing image-processing pipeline rather than around it.</td></tr><tr><td><strong>Non-C language with FFI</strong></td><td>Any language with a C foreign-function interface (Python, Go, Rust, Java JNI, .NET P/Invoke) can call the SDK directly.</td></tr></tbody></table>

## When **not** to use the SDK

* **One-shot batch processing** — use the [CLI](/reference/cli-reference.md). Simpler, no compilation.
* **Hot folder ingest** — use the [Folder Enhancer or PDF Enhancer](/reference/pdf-cli.md). Already built for this.
* **Node.js / TypeScript stack** — use the [Node.js module](/reference/node.js-module/overview.md). Native bindings already provided.
* **Cloud or low-effort deploy** — use the [Cloud API](/reference/cloud-api/overview.md). No infrastructure to manage.

***

## Platform support

<table><thead><tr><th width="272.4000244140625">Platform</th><th>SDK availability</th></tr></thead><tbody><tr><td><strong>Windows (x64)</strong></td><td>Supported</td></tr><tr><td><strong>Linux (x64)</strong></td><td>Supported</td></tr><tr><td><strong>Linux (ARM64)</strong></td><td>Supported</td></tr><tr><td><strong>macOS</strong></td><td>Library available — contact support</td></tr><tr><td><strong>iOS</strong></td><td>Library available since V8.50 — contact support</td></tr><tr><td><strong>Android</strong></td><td>Not currently supported</td></tr></tbody></table>

GPU acceleration (for AI features) requires CUDA 12.6 and an NVIDIA GPU with Ampere architecture or newer.

***

## Architectural benefits

The SDK is the **same C++ engine** that powers every other VIESUS interface:

* Same enhancement algorithms
* Same `viesusini.json` configuration format
* Identical output for the same input and configuration
* Same licensing model (GUID or Software Key)

This means you can prototype with the CLI, then migrate to the SDK without changing your configuration or expecting different results.

***

## API surface

The primary header is `IsEnhance.h`. The API exposes:

* Engine initialisation and configuration loading
* Per-image enhancement calls (synchronous)
* Per-image enhancement with progress callbacks (asynchronous)
* GPU model loading/unloading hooks (relevant for `VIESUS_UNLOAD` workflows)
* License management entrypoints

Detailed function signatures, threading model, memory ownership, and example code ship with the SDK package.

***

## How to get the SDK

The SDK is not a self-service download. Access is granted as part of an SDK-tier license agreement with Viesus AG, which includes:

* Headers, libraries, and sample code
* The bundled AI model files (large; not in the public installer)
* A dedicated technical contact during integration
* Build configurations for your target platforms

{% hint style="info" %}
**To request SDK access**, email <info@viesus.com> with:

* Your company and intended product
* Target platforms (OS, architecture, GPU presence)
* Expected production volume
* Whether you need GPU AI features (AI upscaling, Facial Reconstruction, Artifacts Removal)
  {% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.viesus.com/reference/overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
