Fairport  v1.0.38
Fairport Documentation
Author:
Terry Mahaffey

Introduction

This is the API Reference for Fairport. Fairport is a fork of PSTSDK, which is Microsoft's SDK for accessing PST files.

The latest release can be found here.

PSTSDK is distributed under the Apache v2.0 License. Fairport is based on PSTSDK, but any and all Fairport modifications to are licensed under the GPL v3. If you require an Apache licensed library, you can either stick with PSTSDK proper or contact me directly about alternative licensing for Fairport.

Differences between Fairport and PSTSDK:

  • Fairport is not associated with Microsoft, PSTSDK is
  • Fairport is GPL, PSTSDK is Apache
  • Fairport drops all pretense of write support
  • Fairport plans on a richer API set at the PST layer

Like PSTSDK, Fairport is organized into layers (represented as "Modules" in this reference). If you don't know where to start, there is a good chance you can work in the "PST" Layer and ignore everything else.

System Requirements

  • Boost v1.42 or greater (older versions may work, but are untested). The following Boost components are used:
    • Boost.Iostreams
    • Boost.Iterators
    • Boost.Utility
  • libiconv (non-Windows)
  • GCC 4.4.x+ (Linux, Mac, Windows), VC9+ (Windows)

Fairport is explicitly tested in these configurations:

  • Win7+VC10 /W4 /analyze
  • Win7+GCC 4.6.2 -pedantic
  • WinXP+VC9 /W4
  • Ubuntu 11.10+GCC 4.6.1 -pedantic
  • Ubuntu 11.10+GCC 4.6.1 -pedantic -std=c++0x
  • MacOSX 10.7.2+GCC 4.2.1 -pedantic
  • MacOSX 10.7.2+Clang 3.0 -pedantic

Additional Documentation

See the original PSTSDK Documentation on the CodePlex site for a series of "Quick Start" guides; one for each layer. It's still accurate for Fairport.

The Fairport Wiki will eventually contain information specific to Fairport.

The [MS-PST] reference documentation is included in this distribution in the "doc" directory, but it may be out of date. The latest version can be found on MSDN.

Sample Code

There are several sample included in the "samples" directory of the distribution. Additionally, the unit test code contained in the "test" directory may be of some value as sample code.

Getting Help

For general PSTSDK questions, you can try the discussion section on the CodePlex site. You can also try any other official support mechanism Microsoft may offer.

There is currently no forum for Fairport specific questions. You can try contacting me directly if you'd like to talk about me providing technical support, or if you feel you've found a bug or have a feature request you can file an issue.

Bug Reports

If you find a bug either in the SDK or the documentation, create a work item for it on the Issue Tracker section of the CodePlex site. Feel free to vote up existing issues you feel are important.

Please use the Issues page for Fairport specific issues or feature requests.

Contributing

All contributions (in the form of code contributed back, pull requests, etc) must be Apache licensed or similar - despite Fairport itself being GPL licensed currently. I require this so I have the option of licensing Fairport itself whole via Apache (or similar) in the future. Perhaps it's a silly idea. We'll see how long it lasts.

In the meantime, you are of course (and in fact, required) to publish and share any modifications you make under GPLv3, but I most likely will not merge them into Fairport proper.