Swiftpack.co - vincentneo/CoreGPX as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
A library for parsing and creation of GPX location files. Purely Swift.
.package(url: "https://github.com/vincentneo/CoreGPX.git", from: "v0.2.2")

Parse and generate GPX files easily on iOS, watchOS & macOS.

What is CoreGPX?

CoreGPX is a port of iOS-GPX-Framework to Swift language.

CoreGPX currently supports all GPX tags listed in GPX v1.1 schema, along with the recent addition of GPX v1.0 support. It can generate and parse GPX compliant files on iOS, macOS and watchOS.

As it makes use of XMLParser for parsing GPX files, CoreGPX is fully dependent on the Foundation API only.


  • ☑ Successfully outputs string that can be packaged into a GPX file
  • ☑ Parses GPX files using native XMLParser
  • ☑ Support for iOS, macOS & watchOS
  • ☑ Supports Codable in essential classes
  • ☑ Enhanced full support for GPXExtensions for both parsing and creating.
  • ☑ Lossy GPX compression. Check out GPXCompressor for an implementation of this new feature.
  • (new) Legacy GPX support. (GPX 1.0 and below)


CoreGPX is documented using jazzy.

Documentation Status

You can read the documentation here, which documents most of the important features that will be used for parsing and creating of GPX files.


CoreGPX supports CocoaPods, Carthage, as well as Swift Package Manager, such that you can install it, any way you want.

To install using CocoaPods, simply add the following line to your Podfile:

pod 'CoreGPX'

CoreGPX works with Carthage as well, simply add the following line to your Cartfile:

github "vincentneo/CoreGPX"

How to use?

Check out the wiki page for some basic walkthroughs of how to use this library.

Alternatively, you may check out the Example app, by cloning the repo, pod install and running the Example project.

To know in-depth of how CoreGPX can be used in a true production setting, please refer to awesome projects like iOS-Open-GPX-Tracker or Avenue GPX Viewer, both of which, uses CoreGPX.


Check out the Extras folder for some extra helper codes that may help you with using CoreGPX. Simply drag and drop it into your project to use.

  • GPX+CLLocation.swift: Converting CLLocation type to GPXWaypoint, GPXTrackPoint and more.


Contributions to this project will be more than welcomed. Feel free to add a pull request or open an issue. If you require a feature that has yet to be available, do open an issue, describing why and what the feature could bring and how it would help you!

Previous Builds Logs

History of older build logs can be found at Travis CI: Travis CI

CoreGPX recently switched to GitHub Actions due to the loss of free tier Travis CI for open sourced Mac-based projects.

Like the project? Check out these too!


CoreGPX is available under the MIT license. See the LICENSE file for more info.


Stars: 147
Last commit: 3 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Release Notes

GPX 1.0
26 weeks ago

In this release of CoreGPX,

  • There can now be more than one GPXLink elements, as per GPX 1.1 schema. Prior implementation was an erroneous interpretation of the schema. (Special thanks to @VilemKurz! #85)
  • GPX 1.0 files are now supported! #51
  • Certain keywords are now renamed for better readability. (trackpoints ~> points) #89

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics