# adapters — Wine / Proton / vkd3d / dxvk
Thin C adapters that link against `libkatra3d` (built from
`crates/katra-abi`) and translate native calls into the boring ABI surface
(§22). They exist for compatibility and migration; they must **not** become
Katra's internal architecture (§23).
## Status
| `wine/` | pending Phase 3+ (KatraFlow attach via LD_PRELOAD contract) |
| `proton/` | pending Phase 3+ |
| `vkd3d/` | pending Phase 8 (evidence-gated D3D12 hot paths) |
| `dxvk/` | pending Phase 3+ (storage-only benefit) |
## The instrumentation contract
Any process can be captured without code changes by installing the Katra
profiler and honoring `KATRA_TRACE_OUT`; `katra-prof capture` sets the
environment for a child process. The future LD_PRELOAD path exports the
same functions the header documents (`include/katra3d.h`).
## Rule
Adapters call semantic operations (`katra3d_trace_event`,
`katra3d_flow_observe`, `katra3d_graph_*`, ...) — never Rust implementation
objects across the boundary.