Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
February 5, 2023 22:16
February 1, 2023 20:40
April 6, 2019 20:44
August 6, 2020 00:07
April 16, 2019 20:33
February 3, 2023 13:57
February 5, 2023 22:16
February 2, 2023 02:02
August 2, 2021 11:47
August 21, 2022 10:38
April 16, 2019 19:34
August 16, 2020 15:55
April 16, 2019 19:31
August 21, 2020 10:28
February 3, 2023 14:14


Support for

Build Status
Code Review Code Review Code Review Code Review

Conan package Brew package

Benchmark Results

Conformance mac linux
Performance max linux
For details see: JsonBenchmark


Yet another JSON/YAML/BSON serialization library for C++.

Unlike other libraries this one does not require you to build DOM of you object before serialization. Using a declarative C++ style you define what C++ classes (and members) you want to serialize "ThorSerializer" will generate the appropriate code automagically.


Can be installed via brew on Mac and Linux

brew install thors-serializer

Header Only

To install header only version

git clone --single-branch --branch header-only

Version 2

I have deprecated the jsonImport() and jsonExport() functions. These have been replaced with jsonImporter() and jsonExporter() functions (though the original versions still exist but are marked [[deprecated]]). The main difference is that the new functions catch exceptions (by default) this makes the serialization work like normal C++ serialization and simply set the bad bit on the stream.


Added the all-contributers bot to generate the table.

One Page