NewProject Online was retired on 30 September 2026. Your .mpp files still open here.Read how →

Open source

MPPKit: the open-source .mpp engine

MPPKit reads and writes Microsoft Project .mpp files natively in Swift, on macOS and iPadOS. It is the file layer inside MPP Studio, and it is open source under the AGPL v3.

Updated 21 October 2026 · github.com/hpetersen/MPPKit

Quick answer

MPPKit is a Swift package that opens, edits and saves Microsoft Project files from Project 2010 through Microsoft 365, with no Microsoft Project, Java or .NET on the machine. Files it writes open in Microsoft Project. Source, tests and issues are on GitHub.

Why we opened it

.mpp is the only major Office file format with no published Microsoft specification, and there was no Swift library for it. Every Apple-platform app that reads .mpp ships a closed parser. We would rather the code that touches your schedules be open to inspection, testing and improvement by anyone.

It also means you don’t have to take our word for it. Everything MPP Studio promises about your files, that they open in Microsoft Project with nothing lost, can be checked in the source.

How it is verified

  • Opened in Microsoft Project: files MPPKit writes have been opened in Project Professional (Microsoft 365) with outline, dates, durations, links, calendars, progress and the Gantt chart as written.
  • Checked against an independent reader: on every build, MPPKit’s reading of each sample file, and of files it has just written, is compared field by field with MPXJ. Any difference fails the build.
  • Checked against Project’s own scheduling: a built-in tool reschedules Project-saved files and compares every date and the critical path with what Project stored.
  • Tested on Mac and iPad: continuous integration builds for macOS and iPadOS and runs the full test suite and CodeQL on every change.

What it reads and writes

What MPPKit reads and writes
In the fileSupport
TasksOutline to any depth, summaries, milestones, durations, constraints, deadlines, % complete with actuals, notes, WBS, custom fields, baselines 0 to 10
LinksFS, SS, FF and SF, with lead and lag in any unit
ResourcesWork resources with their own calendars; assignments with units, work and progress
CalendarsWorking time, holidays and exceptions, any number of base calendars
ProjectTitle, dates, status date, working-time settings, document properties
Project XMLExport and import, with the same fields

It also includes a critical-path scheduler that follows Project’s rules for float and progress. The README lists what is not supported yet.

Use it in your own app

Add it with Swift Package Manager:

.package(url: "https://github.com/hpetersen/MPPKit.git", from: "0.1.0")

Read a file and list its tasks:

import MPPKit

let project = try MPP14File(path: "plan.mpp").readProject()
for task in project.tasks {
    print(task.name, task.durationDays)
}

The repository also has mppdump, a command-line tool that shows what is inside any .mpp file, and a sample file that uses every supported feature.

Licence and contributions

MPPKit is released under the GNU AGPL v3. Software you distribute with it, or let people use over a network, must also be released under the AGPL with its source code. Contributions are welcome, above all .mpp files that MPPKit reads or writes wrongly; CONTRIBUTING.md explains how to share a file without sharing its contents.

Questions people ask

Is MPP Studio open source?

The file engine is. MPPKit, which reads and writes the .mpp files, is open source under the AGPL v3. The MPP Studio app itself is not.

Which .mpp versions does MPPKit support?

MPP14, the format of Microsoft Project 2010 through Microsoft 365. Files from Project 2007 and earlier are recognised and refused with a clear error.

Can I use MPPKit in a closed-source app?

Not under the AGPL v3: software you distribute with MPPKit, or let people use over a network, must also be released under the AGPL with its source code.

Microsoft and Microsoft Project are trademarks of Microsoft Corporation. MPPKit and MPP Studio are not affiliated with Microsoft.

Try MPP Studio now, free

The web beta is open, with Team Pro free for everyone. Make an account, open any .mpp in your browser, share plans and invite your team. You also get an email the day the Mac and iPad apps launch.

Join the beta

Free, with Team Pro until 30 days after launch. Beta Terms