A C++ port of the Typesafe Config library.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
acceptance
lib (PA-2055) Disable warnings for boost::variant Jul 17, 2018
locales
.gitignore
.travis.yml
CMakeLists.txt
CONTRIBUTING.md
LICENSE
MAINTAINERS
README.md
appveyor.yml

README.md

C++ HOCON Parser

Travis CI Appveyor

This is a port of the TypesafeConfig library to C++.

The library provides C++ support for the HOCON configuration file format.

          MMMMMMMMMMMMMMMMMMMM
         .====================.
         MMMMMMMMMMMMMMMMMMMMMM
        .MMMMMMMMMMMMMMMMMMMMMM.
    ===.7MMMIN7NMMMMMMMMM7M=MMMM,===
    MMM.7MM:     DMMMMM7    :MMM=MMM
    MMM.7MM,     DMMMMM?    ~MMM=MMM
    MMM.7MMM~++~?MMMMMMM~++~MMMM=MMM
        .MMMMMMMMMMMMMMMMMMMMMM.
         MMMMMMMMMMMMMMMMMMMMMM
         MMMMMMMMMMMMMMMMMMMMMM
         MMM      HOCON     MMM
         MMMMMMMMMMMMMMMMMMMMMM
          .MMMMMMMMMMMMMMMMMM.
          .MMMMMMMMMMMMMMMMMM.
       .MMMMMMMMMMMMMMMMMMMMMMMM
 .    MMMMMMMMMMMMM88MMMMMMMMMM8MM    .
7=MMMMMMMM++ A CONFIG FILE  ++M8MMMMMM7=
M=MMMMMMMM+ FORMAT DESIGNED  +M8MMMMMM7M
M=MMMMMMMM++  FOR HUMANS   ++M8MMMMMM7M
 =MMMMMMMMMMMMMMMMM88MMMMMMMMMM8MMMMMM7
  7MM.88MMMMMMMMMMM88MMMMMMMMMMO88 MM8
  7MM   MMMMMMMMMMM88MMMMMMMMMM8   MM8
  7MM   MMMMMMMMMMM88MMMMMMMMMM8   MM8
  7MM   MMMDMMMM?MM88MM?MMMMOMM8   MM8

Caveats

This is a mostly complete implementation of the HOCON format. It currently has some known limitations

  • Include requires the location specifier, i.e. include "foo" won't work but include file("foo") will. URL is not yet implemented, and classpath won't be supported as it makes less sense outside of the JVM.
  • Unicode testing is absent so support is unknown. There are likely things that won't work.

Build Requirements

  • OSX or Linux
  • GCC >= 4.8 or Clang >= 3.4 (with libc++)
  • CMake >= 3.2.2
  • Boost Libraries >= 1.54
  • Leatherman

Pre-Build

Prepare the cmake release environment:

$ mkdir release
$ cd release
$ cmake ..

Optionally, also prepare the debug environment:

$ mkdir debug
$ cd debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ..

Building

  1. Enter your build environment of choice, i.e. cd release or cd debug
  2. make
  3. (optional) install with make install

Testing

Run tests with make test.