Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move 'other HOCON tools' to HOCON.md #515

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions HOCON.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,28 @@
- [Automatic type conversions](#automatic-type-conversions)
- [Units format](#units-format)
- [Duration format](#duration-format)
- [Period Format](#period-format)
- [Size in bytes format](#size-in-bytes-format)
- [Config object merging and file merging](#config-object-merging-and-file-merging)
- [Java properties mapping](#java-properties-mapping)
- [Conventional configuration files for JVM apps](#conventional-configuration-files-for-jvm-apps)
- [Conventional override by system properties](#conventional-override-by-system-properties)
- [Substitution fallback to environment variables](#substitution-fallback-to-environment-variables)
- [hyphen-separated vs. camelCase](#hyphen-separated-vs-camelcase)
- [Tools and libraries](#tools-and-libraries)
- [Linting tool](#linting-tool)
- [Libraries for various languages](#libraries-for-various-languages)
- [Java](#java)
- [Scala](#scala)
- [Clojure](#clojure)
- [Kotlin](#kotlin)
- [Ruby](#ruby)
- [Python](#python)
- [C++](#c)
- [JavaScript](#javascript)
- [C](#c)
- [Puppet module](#puppet-module)
- [Guice integration](#guice-integration)
- [Note on Java properties similarity](#note-on-java-properties-similarity)
- [Note on Windows and case sensitivity of environment variables](#note-on-windows-and-case-sensitivity-of-environment-variables)

Expand Down Expand Up @@ -1554,6 +1569,82 @@ Environment variables are interpreted as follows:
Config keys are encouraged to be `hyphen-separated` rather than
`camelCase`.

## Tools and libraries

This may not be comprehensive - if you'd like to add mention of
your tool or library, just send a pull request for this README. We would
love to know what you're doing with this library or with the HOCON
format.

### Linting tool

There is a web based linting tool at http://www.hoconlint.com/

### Libraries for various languages

#### Java

* Typesafe Config https://github.com/lightbend/config
* tscfg https://github.com/carueda/tscfg (wraps Typesafe Config)

#### Scala

There are a number of Scala wrappers for Typesafe Config:

* Ficus https://github.com/ceedubs/ficus
* configz https://github.com/arosien/configz
* configs https://github.com/kxbmap/configs
 * config-annotation https://github.com/zhongl/config-annotation
* PureConfig https://github.com/pureconfig/pureconfig
* Simple Scala Config https://github.com/ElderResearch/ssc
* konfig https://github.com/vpon/konfig
* ScalaConfig https://github.com/andr83/scalaconfig
* static-config https://github.com/Krever/static-config
* validated-config https://github.com/carlpulley/validated-config
* Cedi Config https://github.com/ccadllc/cedi-config
* Cfg https://github.com/carueda/cfg
* circe-config https://github.com/circe/circe-config

And a Scala library:

* SHocon https://github.com/unicredit/shocon (work with both Scala and Scala.Js)

#### Clojure

* beamly-core.config https://github.com/beamly/beamly-core.config (wraps Typesafe Config)

#### Kotlin

* config4k https://github.com/config4k/config4k (wraps Typesafe Config)

#### Ruby

* https://github.com/puppetlabs/ruby-hocon

#### Python

* pyhocon https://github.com/chimpler/pyhocon

#### C++

* https://github.com/puppetlabs/cpp-hocon

#### JavaScript

* https://github.com/yellowblood/hocon-js (missing features, under development)

#### C#

* https://github.com/akkadotnet/HOCON

### Puppet module

* Manage your HOCON configuration files with Puppet!: https://forge.puppetlabs.com/puppetlabs/hocon

### Guice integration

Typesafe Config Guice https://github.com/racc/typesafeconfig-guice

## Note on Java properties similarity

You can write a HOCON file that looks much like a Java properties
Expand Down
96 changes: 4 additions & 92 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,20 +76,7 @@ to merge it in.
- [Debugging Your Configuration](#debugging-your-configuration)
- [Supports Java 8 and Later](#supports-java-8-and-later)
- [Rationale for Supported File Formats](#rationale-for-supported-file-formats)
- [Other APIs (Wrappers, Ports and Utilities)](#other-apis-wrappers-ports-and-utilities)
- [Guice integration](#guice-integration)
- [Java (yep!) wrappers for the Java library](#java-yep-wrappers-for-the-java-library)
- [Scala wrappers for the Java library](#scala-wrappers-for-the-java-library)
- [Clojure wrappers for the Java library](#clojure-wrappers-for-the-java-library)
- [Kotlin wrappers for the Java library](#kotlin-wrappers-for-the-java-library)
- [Scala port](#scala-port)
- [Ruby port](#ruby-port)
- [Puppet module](#puppet-module)
- [Python port](#python-port)
- [C++ port](#c-port)
- [JavaScript port](#javascript-port)
- [C# port](#c-port-1)
- [Linting tool](#linting-tool)
- [Other tools](#other-tools)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

Expand Down Expand Up @@ -818,83 +805,8 @@ Two alternatives to HOCON syntax could be:
allow mixing true JSON files into the config but also support
a nicer format.

### Other APIs (Wrappers, Ports and Utilities)
### Other tools

This may not be comprehensive - if you'd like to add mention of
your wrapper, just send a pull request for this README. We would
love to know what you're doing with this library or with the HOCON
format.
There are a number of other
[HOCON tools and libraries](HOCON.md#tools-and-libraries) available

#### Guice integration
* Typesafe Config Guice https://github.com/racc/typesafeconfig-guice

#### Java (yep!) wrappers for the Java library

* tscfg https://github.com/carueda/tscfg

#### Scala wrappers for the Java library

* Ficus https://github.com/ceedubs/ficus
* configz https://github.com/arosien/configz
* configs https://github.com/kxbmap/configs
 * config-annotation https://github.com/zhongl/config-annotation
* PureConfig https://github.com/pureconfig/pureconfig
* Simple Scala Config https://github.com/ElderResearch/ssc
* konfig https://github.com/vpon/konfig
* ScalaConfig https://github.com/andr83/scalaconfig
* static-config https://github.com/Krever/static-config
* validated-config https://github.com/carlpulley/validated-config
* Cedi Config https://github.com/ccadllc/cedi-config
* Cfg https://github.com/carueda/cfg
* circe-config https://github.com/circe/circe-config

#### Clojure wrappers for the Java library

* beamly-core.config https://github.com/beamly/beamly-core.config

#### Kotlin wrappers for the Java library
* config4k https://github.com/config4k/config4k

#### Scala port

* SHocon https://github.com/unicredit/shocon (work with both Scala and Scala.Js)

#### Ruby port

* https://github.com/puppetlabs/ruby-hocon

#### Puppet module

* Manage your HOCON configuration files with Puppet!: https://forge.puppetlabs.com/puppetlabs/hocon

#### Python port

* pyhocon https://github.com/chimpler/pyhocon

#### C++ port

* https://github.com/puppetlabs/cpp-hocon

#### JavaScript port

* https://github.com/yellowblood/hocon-js (missing features, under development)

#### C# port

* https://github.com/akkadotnet/HOCON

#### Linting tool

* A web based linting tool http://www.hoconlint.com/

# Maintanance notes

## License

The license is Apache 2.0, see LICENSE-2.0.txt.

## Maintained by

This project is maintained mostly by [@havocp](https://github.com/havocp) and [@akka-team](https://github.com/orgs/lightbend/teams/akka-team/members).

Feel free to ping above maintainers for code review or discussions. Pull requests are very welcome–thanks in advance!