Develop

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.
SDKPurpose
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.)

Architecture

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.

Features

FeatureDescription
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