The Gnash project aims to create a free player and browser plugin for the Adobe Flash file format and replace the proprietary software niche currently occupied by Adobe Flash Player. It developed from the GPLFlash project. Gnash is released under the GNU General Public License.
Writing a free software Flash player has been a priority of the GNU project for some time. Prior to the launch of Gnash, the GNU project had asked for people to assist the GPLFlash project. The majority of the previous GPLFlash developers have now moved to the Gnash project and the existing GPLFlash codebase will be refocused towards supporting embedded systems.
The primary distribution terms for Gnash are those of the GNU GPL. However since Gnash was started using the codebase of the GameSWF project, which is in the public domain, code developed by the Gnash project which might be useful in GameSWF is placed in the public domain.
Adobe provides an official player for GNU/Linux on x86 in a binary-only form. It does not support Linux users with other processor architectures. Gnash, however, can be compiled and executed on many architectures, including x86, AMD64, MIPS/Irix, and PowerPC. It also supports BSD-based operating systems. An early port for RISC OS, which has never had Macromedia/Adobe Flash support beyond Flash 3, does exist, as well as an early port for BeOS, where Flash support terminated at Version 4.
Flash actually consists of two different file types, SWF, often incorrectly referred to as Flash, which provides animated vector graphics for menus and presentations and FLV, often referred to as Flash Video, which provides streaming video clips for websites such as YouTube.
Currently, Gnash can play SWF files up to version 7, as well as some features of the new version 8– 9 files. Gnash supports playback of FLV videos and allows playing FLV files from YouTube, MySpace, ShowMeDo and other similar websites. FLV support requires FFmpeg or GStreamer to be installed on the system.
Some other free-software programs, such as MPlayer, VLC media player or players for Windows based on the ffdshow DirectShow codecs can play back the FLV format if the file is specially downloaded or piped to it.
The goal of the Gnash developers is to be as compatible as possible with the proprietary player (including behavior on bad ActionScript code). However, Gnash offers some special features not available in the Adobe player, such as the possibility to extend the ActionScript classes via shared libraries: sample extensions include MySQL support, file system access and more. For security reasons the extension mechanism must be compiled-in explicitly and enabled via configuration files.
Gnash requires one of AGG, Cairo, or OpenGL for rendering. In contrast to most GNU projects, which are typically written in C, Gnash is written in the C++ programming language because of its GameSWF heritage.