### Navigation

- index
- modules |
- next |
- PyFFI 2.2.2 documentation »

# Welcome to PyFFI!

Release: | 2.2.2
Date: | November 17, 2012

The Python File Format Interface, briefly PyFFI, is an open source Python library for processing block structured binary files:

- Simple: Reading, writing, and manipulating complex binary files in a Python environment is easy! Currently, PyFFI supports the NetImmerse/Gamebryo NIF and KFM formats, CryTek’s CGF format, the FaceGen EGM format, the DDS format, and the TGA format.
- Batteries included: Many tools for files used by 3D games, such as optimizers, stripifier, tangent space calculator, 2d/3d hull algorithms, inertia calculator, as well as a general purpose file editor QSkope (using PyQt4), are included.
- Modular: Its highly modular design makes it easy to add support for new formats, and also to extend existing functionality.

## Download

Get PyFFI from Sourceforge, or install it with:

    easy_install -U PyFFI

To get the latest (but possibly unstable) code, clone PyFFI from its Git repository:

    git clone --recursive git://github.com/amorilia/pyffi.git

Be sure to use the –recursive flag to ensure that you also get all of the submodules.

If you wish to code on PyFFI and send your contributions back upstream, get a github account and fork PyFFI.

## Examples

- The Blender NIF Scripts and the Blender CGF Scripts use PyFFI to import and export these files to and from Blender.
- QSkope, PyFFI’s general purpose file editor.
- The niftoaster (PyFFI’s “swiss army knife”) can for instance optimize nif files, and much more.

## Questions? Suggestions?

- Open an issue at the tracker.

## Documentation

- Introduction
  - Example and Problem Description
  - What is PyFFI?
- Installation
  - Requirements
  - Using the Windows installer
  - Manual installation
  - Uninstall
- `pyffi` — Interfacing block structured files
  - `pyffi.formats` — File format interfaces
  - `pyffi.spells` — High level file operations
  - `pyffi.object_models` — File format description engines
- How to contribute
  - Get git/msysgit
  - Track the source
  - Development
- Authors
  - Main author
  - Contributors
- License
- ChangeLog
- Todo list
- Thanks
- Glossary

## Indices and tables

- Index
- Module Index
- Search Page

### Navigation

- index
- modules |
- next |
- PyFFI 2.2.2 documentation »