{"id":13407780,"url":"https://github.com/SpongePowered/Configurate","last_synced_at":"2025-03-14T12:31:32.767Z","repository":{"id":25134656,"uuid":"28556746","full_name":"SpongePowered/Configurate","owner":"SpongePowered","description":"A simple configuration library for Java applications providing a node structure, a variety of formats, and tools for transformation","archived":false,"fork":false,"pushed_at":"2024-10-29T03:36:29.000Z","size":14895,"stargazers_count":374,"open_issues_count":40,"forks_count":66,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-10-29T15:22:17.826Z","etag":null,"topics":["configuration","gson","hacktoberfest","hocon","java","json","kotlin","xml","yaml"],"latest_commit_sha":null,"homepage":"https://configurate.aoeu.xyz","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SpongePowered.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"Sponge"}},"created_at":"2014-12-28T07:48:56.000Z","updated_at":"2024-10-27T12:10:11.000Z","dependencies_parsed_at":"2023-10-02T04:44:48.213Z","dependency_job_id":"f9c600af-fe90-4dae-b658-3e7b0940c353","html_url":"https://github.com/SpongePowered/Configurate","commit_stats":{"total_commits":908,"total_committers":30,"mean_commits":"30.266666666666666","dds":"0.44603524229074887","last_synced_commit":"d841b163981c4155b8c9b9796f68dc1f80dc3455"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpongePowered%2FConfigurate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpongePowered%2FConfigurate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpongePowered%2FConfigurate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpongePowered%2FConfigurate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SpongePowered","download_url":"https://codeload.github.com/SpongePowered/Configurate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243544667,"owners_count":20308168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration","gson","hacktoberfest","hocon","java","json","kotlin","xml","yaml"],"created_at":"2024-07-30T20:00:48.614Z","updated_at":"2025-03-14T12:31:32.416Z","avatar_url":"https://github.com/SpongePowered.png","language":"Java","readme":"# [Configurate](https://configurate.aoeu.xyz/) \n\n![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/SpongePowered/Configurate/test-build.yml?branch=master)\n[![MIT License](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE) \n[![Maven Central](https://img.shields.io/maven-central/v/org.spongepowered/configurate-core?label=stable\u0026color=%23f6cf17)][Maven Central]\n![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/org.spongepowered/configurate-core?label=dev\u0026server=https%3A%2F%2Foss.sonatype.org)\n\nConfigurate is a simple configuration library for Java applications that provides a node-based representation of data, able to handle a wide variety of configuration formats.\n\nWant to talk to us about Configurate? Join us in the `#dev` channel on our [Discord](https://discord.gg/PtaGRAs) or start a thread on our (new!) [Discussions](https://github.com/SpongePowered/Configurate/discussions) page.\n\nThe current supported formats are:\n\n* [JSON](https://www.json.org/)\n* [HOCON](https://github.com/lightbend/config/blob/master/HOCON.md)\n* [YAML](http://yaml.org/)\n* [XML](https://www.w3.org/XML/)\n\n## Project Structure\nThe project is split into different modules.\n\n#### Configurate core\n`configurate-core` is the base of the library, containing the main APIs used to manipulate configurations. It is generic, and does not depend on any specific format of configuration.\n\n#### Configurate loaders\nEach distinct configuration format is implemented as a \"configuration loader\", in a separate module.\n\nA number of loader implementations are provided as standard in this project, however it is possible to implement a custom loader for a new format separately.\n\nThe current supported loaders provided by the project are:\n\n* `configurate-gson` - Implementation for the JSON format, using the [Gson](https://github.com/google/gson) library for parsing and generation\n* `configurate-hocon` - Implementation for the HOCON format, using the [lightbend config](https://github.com/lightbend/config) library for parsing and generation\n* `configurate-jackson` - Implementation for the JSON format, using the [Jackson](https://github.com/FasterXML/jackson-core) library for parsing and generation\n* `configurate-xml` - Implementation for the XML format, using the [JAXP](https://docs.oracle.com/javase/tutorial/jaxp/index.html) library for parsing and generation\n* `configurate-yaml` - Implementation for the YAML format, using the [SnakeYAML](https://bitbucket.org/asomov/snakeyaml) library for parsing and generation\n\n#### extras\n\nSome features that don't need tight integration with Configurate itself are provided as separate modules. These are:\n\n* `configurate-extra-dfu[2-4]` - Integration between Mojang's [DataFixerUpper](https://github.com/Mojang/DataFixerUpper) and Configurate's systems.\n* `configurate-extra-kotlin` - Extensions to allow Configurate types to use [Kotlin] features, and support for Kotlin data classes in the object\n mapper.\n* `configurate-extra-guice` - Allows using a [Guice](https://github.com/google/guice) `Injector` to create new object instances in the object mapper.\n\n\n## Usage\n\n* To use Configurate, your project must be configured to use Java 8 or higher.\n* Releases are on [Maven Central] and snapshot artifacts are hosted on Sonatype OSS. Builds are also included on SpongePowered's Maven Repository\n, available at https://repo.spongepowered.org/maven/.\n\nIf your project uses Maven or Gradle, just add the following to your build scripts.\n\n#### Gradle\n\n```groovy\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    // Modify this line to target the loader you wish to use.\n    compile 'org.spongepowered:configurate-hocon:4.0.0'\n}\n```\n\n#### Maven\n\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.spongepowered\u003c/groupId\u003e\n        \u003c!-- Modify this line to target the loader you wish to use. --\u003e\n        \u003cartifactId\u003econfigurate-hocon\u003c/artifactId\u003e\n        \u003cversion\u003e4.0.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\nMore detailed usage instructions can be found in the [Configurate wiki](https://github.com/SpongePowered/Configurate/wiki).\n\n## Contributing\n\n#### Clone\nThe following steps will ensure your project is cloned properly.\n\n1. `git clone https://github.com/SpongePowered/Configurate.git`\n2. `cd Configurate`\n\n#### Building\n**Note:** If you do not have [Gradle](https://www.gradle.org/) 7.0+ installed then use ./gradlew for Unix systems or Git Bash and gradlew.bat for\n Windows systems in place of any 'gradle' command.\n\nIn order to build Configurate you simply need to run the `gradle build` command. You can find the compiled JAR files in `./build/libs`  (found in\n each subproject) labeled similarly to '\u003csubproject\u003e-x.x.x-SNAPSHOT.jar'.\n \n While the entire project can run on Java 8, the project requires Java 11 to build, and for multi-release JAR contents and some tests requires at least Java 16. Gradle will automatically download necessary JDK versions -- see [their documentation](https://docs.gradle.org/current/userguide/toolchains.html) for details on this feature, and how to point it at existing local installations.\n\n#### Pull Requests\nWe love PRs! However, when contributing, here are some things to keep in mind:\n\n- Take a look at open issues first before you get too far in -- someone might already be working on what you were planning on doing\n- In general, we follow the [Sponge style guidelines](https://docs.spongepowered.org/stable/en/contributing/implementation/codestyle.html) for code\n style -- see the [Contributing Guidelines](CONTRIBUTING.md) for details.\n- Please, please, please test PRs. It makes the process a lot easier for everybody :)\n\n\n[Kotlin]: https://kotlinlang.org\n[Maven Central]: https://search.maven.org/search?q=g:org.spongepowered%20AND%20a:configurate*\n","funding_links":["https://patreon.com/Sponge"],"categories":["Configuration","项目","Projects"],"sub_categories":["配置","Configuration"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSpongePowered%2FConfigurate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSpongePowered%2FConfigurate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSpongePowered%2FConfigurate/lists"}