By FamilySearch
Build, serialize, and deserialize genealogical data models (persons, relationships, events) using the GEDCOM X Java library, with expertise in JAXB/XML and Jackson/JSON serialization and FamilySearch API integration.
This project hosts the Java implementation of the GEDCOM X project and serves as the reference implementation of GEDCOM X. The modules of this project each address specific aspects of the GEDCOM X Specification Set, including:
The gedcomx-model subproject provides Java classes that correspond to the data types defined by
the GEDCOM X Conceptual Model.
These classes are instrumented such that they can be used to read and write both
XML and
JSON.
For more information about reading and writing GEDCOM X XML and JSON, see the gedcomx-model module.
The gedcomx-rs-client module provides support for reading from and writing to a GEDCOM X
Web service API that conforms to the GEDCOM X RS Specification.
The gedcomx-fileformat subproject provides support for reading and writing the
GEDCOM X File Format.
The extensions module provides a place for extensions to GEDCOM X. FamilySearch has defined
a set of extensions to the GEDCOM X Conceptual Model and to the GEDCOM X RS specification that comprise the definition of
the FamilySearch API.
The FamilySearch API Client comprises the developer SDK for the FamilySearch API.
Here's how you might use this project.
The GEDCOM X Java artifacts are provided via a Maven repository structure. Most Java-based build systems (Ant, Maven, Gradle, etc.) have support for Maven repositories.
Here's some snippets of what the dependency declarations might look like in some of the most common build systems. Note that
these snippets declare a dependency on the gedcomx-model artifact, but you may want to declare dependencies on
gedcomx-fileformat or gedcomx-rs-client or whatever.
To find the latest version of the libraries, read the Maven Metadata and use the "release" version.
<project>
...
<dependencies>
...
<dependency>
<groupId>org.gedcomx</groupId>
<artifactId>gedcomx-model</artifactId>
<version>${gedcomx.version}</version>
</dependency>
...
</dependencies>
...
</project>
<ivy-module>
...
<dependencies>
...
<dependency org="org.gedcomx" name="gedcomx-model" rev="${gedcomx.version}"/>
...
</dependencies>
...
</ivy-module>
...
dependencies {
runtime group: 'org.gedcomx', name: 'gedcomx-model', version: gedcomxVersion
}
...
...
compile.with transitive('org.gedcomx:gedcomx-model:#{gedcomx-version}')
...
Here's how you build this project from source:
git clone https://github.com/FamilySearch/gedcomx-java.git
cd gedcomx-java
mvn install
The build for this project is automated via Travis CI, which automatically validates any updates to the code. When a release is needed, a Jenkins build server generously hosted by CloudBees is used to perform the release.
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
GEDCOM X knowledge, generation, and validation for genealogical data.
npx claudepluginhub familysearch/gedcomx-java --plugin gedcomx-javaGEDCOM X knowledge, generation, and validation for genealogical data.
How to design and build JSON:API-compliant backends with the jsonapi4j (pro.api4) Java framework — resources, relationships, operations, compound documents, validation, security, and testing.
Production-grade Java development plugin with 8 specialized agents, 12 SASMP-compliant skills, and 4 commands for core Java, Spring, testing, DevOps, and enterprise development
Query, transform, and convert structured data files (JSON, YAML, TOML, XML, CSV, HCL, INI) using dasel v3. Provides reference syntax, exploration workflows, transformation patterns, and cross-platform installation.
Plain Java backend stack provider for the SDLC marketplace (priority=100). Detects any Maven or Gradle project and registers a java-architect agent (Sonnet/medium) as the development-phase backend implementer. Handles CLI tools, libraries, plain services without a web framework. Falls back gracefully to this plugin when no higher-priority Java framework plugin matches (e.g. spring-boot-plugin at 150). Reuses shared skills from java-foundation (java-conventions, build-tooling, jvm-testing).
Ultra-compressed communication mode. Cuts 65% of output tokens (measured) while keeping full technical accuracy by speaking like a caveman.