hashicorp / hcl

HCL is the HashiCorp configuration language.
Mozilla Public License 2.0
5.16k stars 583 forks source link

Interoperability with HOCON #31

Closed benmccann closed 9 years ago

benmccann commented 9 years ago

hcl sounds almost exactly the same as HOCON, which I've contributed to in the past. They both have very JSON-like file formats and there's quite a bit of overlap. They both support types like 1kb even! It'd be cool if maybe the two could work together to define a common spec.

Right now HOCON is used by a lot of Scala & Java projects since Typesafe authored the original client. Puppet has also created a Ruby version that they're using.

Hocon supports some features that hcl doesn't such as importing files and having types for durations, which I think could be added to hcl fairly easily I think. I'm not super fluent in yacc, but it looks like hocon and hcl may handle variables slightly differently, so it's pretty similar as both support syntax like ${aws_instance.web.id}. The Terraform docs seem to have more details on this than the hcl README, so that might be a good place to look.

Not sure if this is worth the effort, but thought it was worth making you guys aware of each other's projects in case there is anything that does make sense.

CC @havocp - maintainer of hocon

benmccann commented 9 years ago

CC @timothysc who may also be interested in this

havocp commented 9 years ago

For what it's worth there's also HJSON http://hjson.org/ and Jsonnet https://github.com/google/jsonnet out there.

mitchellh commented 9 years ago

These look great! However we don't have the bandwidth right now to focus on these sorts of efforts with relation to HCL. However its a great idea for "one day". Sorry!

timothysc commented 9 years ago

@benmccann, @havocp many thanks! that's pretty much what I've been looking for.

OneCricketeer commented 4 years ago

Sorry for digging this up, but with the efforts on HCL2, I will say that HOCON has lots more transparent example documentation.

Don't get me wrong, all for things written in Go rather than Java, but looks like go-akka has that covered.

AFAICT, there is a very slim difference between HOCON and the HCL I've written thus far...