amazon-ion / ion-c

A C implementation of Amazon Ion.
https://amazon-ion.github.io/ion-docs/
Apache License 2.0
166 stars 43 forks source link

Amazon Ion C

A C implementation of the Ion data notation.

Build Status Build status

Setup

This repository contains a git submodule called ion-tests, which holds test data used by ion-c's unit tests.

The easiest way to clone the ion-c repository and initialize its ion-tests submodule is to run the following command.

$ git clone --recursive https://github.com/amazon-ion/ion-c.git ion-c

Alternatively, the submodule may be initialized independently from the clone by running the following commands.

$ git submodule init
$ git submodule update

The submodule points to the tip of the branch of the ion-tests repository specified in ion-c's .gitmodules file.

Pulling in Upstream Changes

To pull upstream changes into ion-c, start with a simple git pull. This will pull in any changes to ion-c itself (including any changes to its .gitmodules file), but not any changes to the ion-tests submodule. To make sure the submodule is up-to-date, use the following command.

$ git submodule update --remote

This will fetch and update the ion-tests submodule from the ion-tests branch currently specified in the .gitmodules file.

For detailed walkthroughs of git submodule usage, see the Git Tools documentation.

Building the Library

Use the provided scripts build-release.sh and build-debug.sh. Ensure that cmake is installed first.

On macOS

cmake can be installed using Homebrew: brew install cmake

Using the Library

A great way to get started is to use the Ion cookbook.