This repository contains the specification for the xconfig standard, located in the spec folder.
If you are looking for an example implementation, please refer to the example repository.
xconfig, crossconfig, or xcfg4j is a universal configuration standard for the JVM and JVM-based programming languages.
It is designed to be simple yet expandable, easy to use, and easy to implement.
xconfig is divided into three moving parts:
- The frontend
- A user-intractable part that allows for configuration modification
- Examples:
- A command-line interface
- A graphical interface
- A text editor
- The backend
- A programmatic interface that specifies I/O operations and configuration storage
- Examples:
- A file-based backend (using a file format such as JSON, YAML, XML, etc...)
- A database-based backend (using a database such as MySQL, MangoDB, etc...)
- The middle-end
- A programmer chosen approach to configuration declaration and validation
- Examples:
- A functional declaration
- An annotation-based configuration declaration
- A Kotlin DSL-based configuration declaration
- A Scala macros-based configuration declaration
Philosophically speaking, each part should be different and interchangeable by the user, allowing for a wide range of configuration styles and approaches.
However, in practice, a frontend could (and/or would) also bundle its own backend for simplicity's sake, since the part that developers would be interacting more often (therefore would differ more) would be the middle-end.
you shouldn't, it's not finished lmao
This project is licensed under the LGPLv3 License.