Skip to content

Commit

Permalink
docs: add section about feature parity with go-hcl
Browse files Browse the repository at this point in the history
Closes #304
  • Loading branch information
martinohmann committed Apr 9, 2024
1 parent f89b454 commit ce719b1
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,33 @@ Configuration Language (HCL):
- [`hcl-primitives`](https://github.com/martinohmann/hcl-rs/blob/main/crates/hcl-primitives):
Primitives used by the HCL sub-languages.

## Feature parity with the go-hcl implementation

The crates in this repository try to closely follow these specifications that
are part of the Hashicorp's [HCL Go
implementation](https://github.com/hashicorp/hcl):

- [HCL Syntax-Agnostic Information Model](https://github.com/hashicorp/hcl/blob/main/spec.md)
- [HCL Native Syntax Specification](https://github.com/hashicorp/hcl/blob/main/hclsyntax/spec.md)
- [HCL JSON Syntax Specification](https://github.com/hashicorp/hcl/blob/main/json/spec.md)

At the parser level it should support all features that go-hcl does today.
However, the implementations for formatting and expression evaluation in `hcl-rs`
are relatively basic at the moment. There are plans to move formatting and
expression evaluation capabilities into `hcl-edit` (which is used by `hcl-rs` under
the hood and also contains the parser implementation) and to make them more
powerful.

Another thing that is not included (yet), is the support for HCL schemas in
order to validate that a parsed HCL document only contains an allowed set of
blocks with expected attributes (e.g. to enable validation that a given
terraform configuration only contains well-formed `resource` and `data` blocks
etc.).

Additionally, schema support can help to make it easier to encode more complex
configurations using custom types. These configurations are currently
cumbersome to assemble because of limitations of the `serde` model.

## Contributing

Contributions are welcome! Please read
Expand Down

0 comments on commit ce719b1

Please sign in to comment.