/jackson-dataformats-binary

Uber-project for standard Jackson binary format backends: avro, cbor, protobuf, smile

Primary LanguageJava

Overview

This is a multi-module umbrella project for Jackson standard binary dataformat backends.

Dataformat backends are used to support format alternatives to JSON, using general-purpose Jackson API. Formats included allow access using all 3 API styles (streaming, databinding, tree model).

For Jackson 2.x this is done by sub-classing Jackson core abstractions of:

  • All backends sub-class JsonFactory, which is factory for:
    • JsonParser for reading data (decoding data encoding in supported format)
      • JsonGenerator for writing data (encoding data using supported format)
    • Some backends sub-class ObjectMapper for additional support for databinding

there will be some changes (such as introduction of format-specific ObjectMapper sub-classes) in Jackson 3.0.

Branches

master branch is for developing the next major Jackson version -- 3.0 -- but there are active maintenance branches in which much of development happens:

  • 2.11 is for developing the next 2.x version
  • 2.10 are for backported fixes for 2.10 version

Older branches are usually not changed but are available for historic reasons. All released versions have matching git tags (jackson-dataformats-binary-2.9.4).

Note that since individual format modules used to live in their own repositories, older branches (before 2.8) and tags do not exist in this repository.

Binary formats included

Currently included backends are:

License

All modules are licensed under Apache License 2.0.

Status

Build Status

Maven dependencies

To use these format backends Maven-based projects, use following dependency:

<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-[FORMAT]</artifactId>
  <version>2.9.9</version>
</dependency>

where [FORMAT] is one of supported modules (avro, cbor, smile etc)

Other Jackson binary backends

In addition to binary format backends hosted by FasterXML in this repo, there are other known Jackson backends for binary data formats. For example:

More

See Wiki for more information (javadocs).