SWF

Adobe Flash (or Macromedia Flash, Shockwave Flash, FutureSplash) is a platform for multimedia applications. SWF (Small Web Format, or Shockwave Flash) is its format for Flash applications that can be run in the browser. Fundamentally it is an animated vector graphics format, but it has many other features, and can contain complete computer programs written in ActionScript. Among its common uses are advertisements, web site user interfaces, video games and other applets, and video playback.

SWF is not designed to be editable. Instead, SWF files are usually compiled from a source (project) format called FLA. The ActionScript programming language is also used.

Flash was at the height of popularity for interactive browser applications in the 2000's, but notoriously suffered from security vulnerabilities (and continues to do so as of this writing). It was also dealt a serious blow when Apple decided not to support it in iOS devices, and Web developers have generally turned to HTML 5 as a replacement. In July 2017, in perhaps the first Flash update anyone has cared for, Adobe announced that Flash will reach its end-of-life in 2020.

The SWF format is only currently useful for building Adobe AIR applications and games. Adobe AIR is a somewhat popular (although lesser known) framework for developing cross-platform apps/games. It is used to build Angry Birds and a couple of other games.

The Adobe Animate program is one of the programs from Adobe which works with this format, but it is also one of the programs which Adobe has pushed people into using via their Creative Cloud subscription service, where you only have access to it as long as you keep paying your fees, and don't have access to it at all if they decide to withdraw access to the version you need.

Disambiguation
SWF is not the same format as the one known as Shockwave, Adobe Shockwave, Macromedia Shockwave, or Shockwave for Director. For that format, see Shockwave (Director).

Identification
SWF files begin with a 3-byte ASCII signature:
 * " " is for uncompressed files.
 * " " is for files that use zlib compression.
 * " " is for files that use LZMA compression.

Specifications

 * SWF File Format Specification, Version 19
 * SWF File Format Specification, Version 10
 * SWF File Format Specification, Version 9 (from archive.org)

Authoring Software

 * Adobe Animate - Creates SWF files from FLA files
 * Adobe Flash Builder - IDE for Flash application development
 * secureSWF - SWF code obfuscator (code security)

Inspection and Decompilation Software

 * JPEXS Free Flash Decompiler (FFDEC)
 * Sothink SWF Decompiler - Decompiles code and assets of SWF files
 * AS3Sorcerer - Decompiles AS3 code inside SWF files
 * SWFWire - Inspects SWF files
 * swftools
 * Flasm - ActionScript assembler and disassembler
 * 7-Zip can convert compressed SWF to uncompressed SWF.

Viewer Software

 * Adobe Flash Player
 * Old versions
 * GNU Gnash (apparently inactive)
 * Lightspark (alpha state)
 * Shumway (inactive)
 * Ruffle
 * AwayFL

Libraries

 * AS3: AS3swf - Low level library to parse, create, modify and publish SWF files.
 * AS3: AS3abc - Low level library to parse, create, modify and publish ABC (Actionscript Block Code) files.
 * AS3: SWFWire - SWF Decompiler and Inspector Tools.
 * AS3: Abc-abstraction - Allows ABC to be analyzed, manipulated, packaged back into an SWF, and run.
 * C#: SwfDotNet - Low level library to parse, create, modify and publish SWF files.
 * C/C++: Ming - SWF generation library
 * C++: gameswf - Library for parsing and rendering SWF movies
 * C++ libsswf - A complete library to generate Flash animations
 * PHP: Ming - SWF generation library
 * Python: Ming - SWF generation library

Sample files

 * https://telparia.com/fileFormatSamples/archive/swf/

Links

 * Wikipedia: SWF
 * Wikipedia: Adobe Flash
 * Wikipedia: FutureSplash Animator
 * Flash Player and Adobe AIR feature list
 * SWF format mini-poster
 * Gone in a Flash: The Race to Save the Internet's Least Favorite Tool
 * Tracing the Sprawling Roots of Flash Preservation