Skip to content

A Go library to parse GEDCOM (Genealogical Data Communication) files

Notifications You must be signed in to change notification settings

AdamIsrael/gedcom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Go library to parse GEDCOM files

Build Status codecov Report Card

Goals

  • Be easy to use.
    • Document everything.
    • Provide examples.
  • Be reliable.
    • Fail early.
    • Test everything.
  • Be accurate.
    • Validate against the GEDCOM spec.
    • Pass all available GEDCOM torture tests.
  • Be performant.
    • Benchmark all the things.

History

I needed a GEDCOM parser. I tried the existing parsers, but I wasn't quite satisfied. They were either incomplete, weren't actively being developed/maintained, or had serious bugs. So I decided to write my own.

Spec

Support GEDCOM 5.5 and 5.5.1, but consider adding support for other versions as they're released or encountered. There are likely quirks that will be encountered from GEDCOMs generated by some companies.

GEDCOM 5.5.1

Testing

The simple GEDCOM used for testing is rather limited, hence why the testing coverage for the parser is only 51.8%. A more complex GEDCOM will raise the coverage. A TODO would be to develop a full-featured GEDCOM for use with testing.

TODO

  • Find by xref
  • Relationships -- need to calculate the relationship between all individuals, method to find by relationship, find unrelated
  • Island trees -- need to be able to list islands of unrelated/unconnected individuals or families

About

A Go library to parse GEDCOM (Genealogical Data Communication) files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published