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

[HOCON 3] HOCON interface proof of concept #5710

Draft
wants to merge 3 commits into
base: dev
Choose a base branch
from

Conversation

Arkatufus
Copy link
Contributor

This is a proof of concept that extracting an interface from the current HOCON implementation is possible without a major change inside the code.

@Aaronontheweb
Copy link
Member

This looks good to me after having had a chance to discuss it with you - it looks like you've correctly isolated all of the abstract HOCON behaviors into a set of immutable / read-only interfaces that can be used to guarantee caller-side behavior works the same across different implementations.

The next phase of this project is working these changes back into the stand-alone HOCON library and determining if these interfaces are flexible enough to allow us to meet the goals of akkadotnet/HOCON#267 - if they can, we should proceed with a lightweight, simplistic prototype that does the following:

  1. Separate read / write models
  2. Guaranteed / verified via testing immutable read model
  3. Extremely fast reads

We can add "later stage" features in the future such as:

  1. Substitution
  2. Environment variable support
  3. Microsoft.Extensions.Configuration support
  4. The full HOCON spec (I'll leave it to you to define what constitutes a "minimally viable" HOCON implementation, for proof of concept purposes)

But for the time being, the next step is to prove that these abstractions work. If they fall apart in the course of implementing HOCON3.0 we'll need to revisit them and propose making some bigger changes to the underlying HOCON interfaces as they are today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants