TCX
A Garmin Training Center XML (.TCX) reader and writer.
Unlike other libraries such as tcx_rb or tcxread, provides a more idiomatic API, implements both read and write, and supports the entire TCX schema, including extensions.
Installation
Add to Gemfile.
gem 'tcx'
Run bundle install.
Usage
Working with Files
Read and write TCX files using Tcx#load_file and dump.
require 'tcx'
tcx = Tcx.load_file('activities.tcx') # => Tcx::Database
tcx.activities # => [Tcx::Activity], array of Tcx::Activity
tcx.workouts # => [Tcx::Workout]
tcx.courses # => [Tcx::Course]
tcx.dump # overwrites activities.tcx
tcx.dump('activities2.tcx') # writes to activities2.tcxWorking with XML Data
Directly manipulate TCX data without creating files.
data = File.read('activities.tcx') # String
tcx = Tcx.load(data) # => Tcx::Database
tcx.to_xml # => XML string
tcx.dump('activities2.tcx') # writes to activities2.tcxExamples
See examples for a complete set of working samples.
Upgrading
See UPGRADING.
Contributing
See CONTRIBUTING.
Copyright and License
Copyright (c) 2025, Daniel Doubrovkine and Contributors.
This project is licensed under the MIT License.