The OSL project includes a complete language specification, a compiler from OSL to an intermediate assembly-like bytecode, a runtime library interpreter that executes the shaders (including just-in-time machine code generation using LLVM), and extensive standard shader function library. These all exist as libraries with straightforward C++ APIs, and so may be easily integrated into existing renderers, compositing packages, image processing tools, or other applications. Additionally, the source code can be easily customized to allow for renderer-specific extensions or alterations, or custom back-ends to translate to GPUs or other special hardware.