Home

Awesome

TravisCI Build Status

The format library contains support for different file-formats for the Haxe programming language.

Formats

Currently supported formats are :

FormatDescriptionReaderWriter
ABCFlash AS3 bytecode format
AGALAdobe Shader Assembler for Stage3D
AMFFlash serialized object
AS1Adobe ActionScript1-2 bytecode in SWF
BMPBitmap Image format
ELFExecutable and Linkable Format
FLVFlash Video
GIFImage file format
GZCompressed file
HLHashLink
ICOWindows ICO/CUR File format
JPGImage file format
LZ4Compressed file
MAPSource Maps
MP3Compressed audio
NEKONekoVM bytecode
PBJPixelBender Binary file
PDFOnly generic file structure and partial decryption
PEXParticle effect format
PNGImage file format
SWFFlash file format
TARCompressed Archive
TGATARGA Image file format; Reader/Writer does not support developer data chunk; Writer does not support RLE encoding
TGZTAR+GZ Archive
WAVRaw sound
ZIPCompressed Archive

Documentation

Automatically generated API documentation is here: https://haxefoundation.github.io/format/format/

Installation

Available on haxelib, simply run the following command : haxelib install format. To use the library, simply add -lib format to your commandline parameters.

Package Structure

Each format lies in its own package, for example format.pdf contains classes for PDF.

The format.tools package contains some tools that might be shared by several formats but don't belong to a specific one.

Each format must provide the following files :

It's important in particular that the data structures storing the decoded information are separated from the actual classes manipulating it. This enables full access to all the file format infos and the ability to easily write libraries that manipulate the format, even if later the Reader implementation is changed for example.

Contributing

We're accepting contributions if they are following the package structure rules (see above), please send them as Pull Requests.