NSIS (Nullsoft Scriptable Install System) is a professional open-source tool for the development of Windows installers. It is designed to be as small and flexible as possible and is therefore highly suitable for internet distribution.

An installer is not only the first experience of a user with your product, many software problems can also be solved by providing reliable installation tools. NSIS allows you to create stable, quick and user friendly installers that are capable of installing, uninstalling, setting system settings, extracting files and more. With the NSIS scripting language you can implement any custom logic you want.

Features:

From NSIS Wiki

NSIS can create Windows installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Because NSIS is based on script files, you can create both simple and advanced installers.

Small overhead size

NSIS is created to be small, fast and and efficient. While other installers often add hundreds of kilobytes or several megabytes to your installer data, a full-featured NSIS installer has an overhead of only 34 KB.
Compatible with all major Windows versions

You can choose between three different integrated compression methods (ZLib, BZip2, LZMA). The new LZMA compression gives better results than any other common compression method. You don't have to use large self-extracting archive modules or other applications. The compression support is included in the 34 KB overhead.

Script based

Unlike other systems that can only generate installers based on a list of files and registry keys, NSIS has a powerful scripting language. This script language is designed for installers and has commands that help you to perform many installation tasks. You can easily add custom logic and handle different upgrades, version checks and more.

For standard installers or as a starting point for more complex ones, you can use one of the available script generation tools.

Multiple languages in one installer

One installer can support multiple interface languages. More than 40 translations are already included, but you can also create your own language files. RTL (right-to-left) languages such as Arabic and Hebrew are fully supported.
Many features and checks for the target system

The script langauge provides commands you can use on the target system, from simple features like folder creation and registry editing to text/binary file modification, modification of environment variables and system reboots. Using provided plug-ins, you can even use Windows API.

Custom dialogs and interfaces

You can create custom wizard pages to get user input or integrate configuration options. NSIS includes a classic and modern wizard interface, but it is even possible to create your own custom interface.

Plug-in system

NSIS can be extended with plug-ins that can communicate with the installer. They can be written in C, C++, Delphi or another language and can be used to perform installation tasks or extend the installer interface. You can use the plug-in with a single line of script code. Plug-ins can also be compressed like other installation data and will only be included when you are using the provided features.

Support for web installation, file patching

The NSIS distribution includes a set of plug-ins that allow you to download files from the internet, make internet connections, patch existing files and more.

Project integration, different releases and automatic builds

The NSIS compiler features a powerful preprocessor. This allows you to easily integrate multiple projects into a single installer or automatically generate installer builds. You can also generate different releases such as lite and full versions.

Easy and human readable file formats

The NSIS script format and the format used for interface dialogs are easy, documented and humanly readable, so you can edit your files with your favorite editor. This also makes automatic script generation possible.

Portable Compiler

The NSIS compiler can be compiled for POSIX platforms like Linux and *BSD. Generated installer will still run on Windows only, but this way they can be generated without Windows or WINE.