Iray Programmer's Manual

Shared library

The Iray API is a C++ API. Its implementation is provided to you in the neuray library, which is a dynamic library (a.k.a. shared library or DLL), named libneuray, with the usual platform specific file extension.

The main benefits of the dynamic library for you are:

  • You can link the neuray library to your application or dynamically load it on demand at runtime without requiring to statically link an interface library to the application. This can improve application startup time.
  • The Iray API follows conventional modern C++ library design principles for component software to achieve binary compatibility and future extensibility across shared library boundaries. The neuray library relies therefore only on the stable C ABI of a platform and you can use a different compiler for the application then the compiler used for the neuray library.
  • Iray API and ABI versioning allows the safe upgrade of the neuray shared library. For details about when a recompilation is necessary and when not. see Version numbers and compatibility.
Note: The neuray system itself depends on other shared libraries. Several of those are also only loaded on demand as plugins when needed. See mi::neuraylib::IPlugin_configuration for details and A first image for an example.