# FEX Core SDK — Documentation

Welcome. This is the entry point for the FEX Core SDK 1.4.2 documentation.
The SDK gives you a forensic image and filesystem engine accessible through
a flat C-style DLL surface. The reference example application
(`FexViewer`) is in C#; reference examples in additional languages will
land in a future patch.

## Start here

| You want to… | Read |
|---|---|
| Get up and running with the **C#** example in 15 minutes | [Quick Start (C#)](quick-start-csharp.md) |
| Same thing in **Python** | [Quick Start (Python)](quick-start-python.md) |
| Understand the architecture | [Architecture overview](architecture-overview.md) |
| Look up a specific export | [Function index](api/function-index.md) |

## API reference (DLL)

Every customer-facing export of `FEX.Core.dll` (and its Linux / macOS
counterparts) is documented in one of three places:

- **[V2 API reference](api/v2-api.md)** — recommended for all new
  integrations. The DLL allocates buffers, the caller frees them with
  `FreeAllocatedBuffer`. This is the default path.
- **[V3 API reference](api/v3-api.md)** — column-windowed extraction for
  huge datasets and partial-column queries. Use this when V2 would
  materialise more memory than you can spend, or when you only need a
  small subset of properties.
- **[Function index](api/function-index.md)** — alphabetical "where do I
  look up X?" reference.

The V1 buffer-pattern surface has been retired from the public docs as of
1.4.2 — the DLL still exports it for binary compatibility but new
integrations should use V2 or V3 only.

## Concepts and references

- **[Types & constants](api/types-and-constants.md)** — `TFileRecord`,
  `TPropertySpec`, `TVersionInfo`, file-status flags, property type enums.
- **[Memory management](api/memory-management.md)** — buffer ownership
  rules and the three patterns. Read once before you write your first
  integration.
- **[Error codes](api/error-codes.md)** — every result code with
  diagnostic guidance.
- **[License keys](license-keys.md)** — how to obtain and install your
  license key.

## Tutorials & best practices

- **[Common workflows](tutorials/common-workflows.md)** — step-by-step
  guides for typical forensic tasks.
- **[Best practices](tutorials/best-practices.md)** — API selection,
  performance, coding patterns.

## Platform & deployment

- **[Windows dependencies](windows-dependencies.md)** — required runtime
  DLLs.
- **[Linux dependencies](linux-dependencies.md)** — required `.so` libraries.
- **[Troubleshooting](troubleshooting.md)** — common problems and fixes.

## Example code

| Language | Path | Notes |
|---|---|---|
| C# | `examples/csharp/` (FexViewer) | Canonical reference for 1.4 — IntelliSense XML doc, three subcommands (`info` / `list` / `extract`), pre-built `FexViewer.exe` ready to run. |

The DLL surface is the same regardless of binding language — the V2 / V3
API references apply universally, so a Python / C++ / Delphi integration
follows the same call shape as the C# example. Reference applications in
those languages will be added in a future patch.

## Sample data

`sample-data/sample-image.dd` is a 50 MB FAT32 image included with every
SDK distribution. Use it for your first run-through; substitute your own
E01 / Ex01 / L01 / DD / DMG / AFF4 once it's working.

## Support

- **Technical support:** support@getdata.com
- **Sales / license keys:** sales@getdata.com
- **Subject convention:** "FEX Core SDK — [brief description]"

For the latest SDK updates, visit [www.getdataforensics.com](https://www.getdataforensics.com).

---

© GetData Forensics. All rights reserved.
