Draft:Nullsoft Scriptable Install System

Nullsoft Scriptable Install System (NSIS) is a software for creating installation programs for the Windows operating system. It was originally developed by Nullsoft, who used the installer for their media player Winamp, among others. Today, NSIS is free software and is licensed under the zlib/libpng License. The source code of NSIS and the downloads are offered through SourceForge, where NSIS was awarded Project of the Month in January 2006. The installer is a popular open-source alternative to commercial installers like InstallShield.

NSIS itself consists only of a command-line compiler and a graphical user interface for the compiler, which aids in compiling and simplifies some settings. The installer includes LZMA compression, plug-in support, multilingual features. Several other for NSIS are available.

When using NSIS in software products, it is not possible to obtain a certification from Microsoft as "Designed for Windows Vista" because NSIS is not capable of generating the necessary Windows Installer files.

Features (Selection)

 * Very small overhead of about 34 KB
 * Compatible with all common Windows operating systems (Windows 95, 98, 2000, 2003, 2008, ME, NT, XP, Vista, 7, 8, 10)
 * Three different compression algorithms (zlib, bzip2, and LZMA), optionally with solid compression
 * 49 languages, including languages written from right to left
 * Plug-in system for nearly unlimited extension of the already extensive features (e.g., there are plug-ins for array operations, advanced mathematical functions, or control of Windows services and processes)
 * Compilation of the installer under Windows or a POSIX compatible system such as Linux or FreeBSD (currently only support for x86 platforms)
 * In addition to a "classic design," also a modern design that closely resembles proprietary installers.

Through the scripting language and the plugin interface, almost unlimited functions can be implemented in self-written installers. This includes managing system services, web-based installations, dynamic updates, repair and rollback functions.

Functionality
An installer is based on a script, where each line is an instruction. The script file is compiled into an executable file containing all files (compressed) and the installation program (script commands) by the command-line compiler "makensis.exe", which can then be easily distributed. MakeNSISW is available as a graphical interface for makensis.

The adjacent images show the result of the above script. Using extensions like the "Modern UI" or specific plug-ins, visually appealing installation wizards can also be created.

Thanks to strong compression algorithms and low overhead, very small installers are possible, making NSIS ideal for distributing programs over the Internet.

Security
Installers created with NSIS have security vulnerabilities when an outdated version is used. Possible security vulnerabilities were closed in versions 2.47, 2.50, and 2.51.

Third-party front-ends
Creation of NSIS installers is supported by several pieces of third-party software:
 * The CMake packager CPack has a generator backend for NSIS.
 * EclipseNSIS is a comprehensive plugin for Eclipse for editing, compiling and testing NSIS scripts.
 * HM NIS EDIT is a free-standing integrated development environment (IDE) for NSIS.
 * Debian has an nsis package for creationg Windows installers under Linux.