Horizon OS NSDK overview
Updated: May 13, 2026
The Horizon OS Native Software Development Kit (NSDK) is a set of C APIs that give native applications direct access to Horizon OS features on Meta Quest devices. It enables developers to easily communicate with OS-level services from native languages such as C, C++, and Rust.
How does it fit alongside Android NDK and OpenXR?
The Horizon OS NSDK complements the Android NDK and OpenXR, and does not replace them. A typical immersive Quest app may use all three: Android NDK for standard platform features, OpenXR for core XR functionality such as rendering and input, and Horizon OS NSDK for Horizon OS-specific capabilities.
| SDK | Purpose |
|---|
Android NDK | Access to standard Android platform APIs (sensors, audio, logging, etc.) from native code |
OpenXR | Cross-platform XR runtime APIs (rendering, tracking, input, etc.) |
Horizon OS NSDK | Horizon OS-specific platform APIs not available through Android or OpenXR (versioning, Virtual Camera Publisher, etc.) |
The Horizon OS NSDK is distributed as an AAR package containing:
- Header files — C API declarations included into your app at compile time (for example,
<horizonos/versioning.h>). - Stub shared library (
libhzos.meta.so) — provides symbol definitions for the linker at build time. Contains no real implementation.
At runtime, the device supplies the real libhzos.meta.so with full implementations. The stub is never packaged into your APK.
Why a C API? A C interface provides maximum compatibility across compilers, build systems, and languages. It avoids C++ ABI fragility and makes the API accessible from any language that supports C FFI.
| Feature | Description |
|---|
| Follow this guide to setup the NSDK to query the Horizon OS SDK version available on the device |
| Register a custom camera that appears as a standard Android Camera2 device |
Graphics Types | Common 2D and 3D graphics data types |