Skip to content
This repository has been archived by the owner on Oct 28, 2023. It is now read-only.
/ PrismConfig Public archive

A lightweight config library for Java to let you write your config elegantly and flexibly.

License

Notifications You must be signed in to change notification settings

Prismwork/PrismConfig

Repository files navigation

Icon

java8 gradle Release

English | 简体中文

A lightweight config library for Java to let you write your config elegantly and flexibly.

Getting Started

To add Prism Config to your project, you need to add following into your build.gradle(.kts):

Groovy DSL:

repositories {
    // ...
    maven {
        name = "Nova Committee - Release"
        url = "https://maven.nova-committee.cn/releases/"
    }
    maven {
        name = "Nova Committee - Snapshot"
        url = "https://maven.nova-committee.cn/snapshots/"
    }
}

dependencies {
    // ...
    implementation "io.github.prismwork:prismconfig:0.2.0:all"
    // Or use the slim jar if you have the libraries included in your project (Gson, Jankson...)
    // implementation "io.github.prismwork:prismconfig:0.2.0"
}

Kotlin DSL:

repositories {
    // ...
    maven {
        name = "Nova Committee - Release"
        url = uri("https://maven.nova-committee.cn/releases/")
    }
    maven {
        name = "Nova Committee - Snapshot"
        url = uri("https://maven.nova-committee.cn/snapshots/")
    }
}

dependencies {
    // ...
    implementation("io.github.prismwork:prismconfig:0.2.0:all")
    // Or use the slim jar if you have the libraries included in your project (Gson, Jankson...)
    // implementation("io.github.prismwork:prismconfig:0.2.0")
}

Prism Config by default provides serializers and deserializers for JSON (Gson), JSON5 (Jankson) and TOML 0.4.0 (toml4j).

To parse a config from string into object, you can do this:

String content;
MyConfig config = PrismConfig.getInstance().serialize(
        MyConfig.class,
        content,
        DefaultSerializers.getInstance().json5(MyConfig.class) // We assume that your config is written in JSON5
);

To parse a config from object into string, you can do this:

MyConfig content;
String config = PrismConfig.getInstance().deserialize(
        MyConfig.class,
        content,
        DefaultDeserializers.getInstance().json5(MyConfig.class) // We assume that your config is written in JSON5
);

You can also write it to a file:

MyConfig content;
File configFile;
PrismConfig.getInstance().deserializeAndWrite(
        MyConfig.class,
        content,
        DefaultDeserializers.getInstance().json5(MyConfig.class), // We assume that your config is written in JSON5
        configFile
);

To write your own serializer/deserializer, you can use the following code (we use serializing as an example):

String content;
PrismConfig.getInstance().serialize(
        MyConfig.class,
        content,
        (string) -> {
            // Do your own parsing here
        }
);

Libraries Used

  • Jankson by falkreon, licensed under MIT.
  • Gson by Google, licensed under Apache-2.0.
  • toml4j by Moandji Ezana, licensed under MIT.

Star History

Star History Chart

About

A lightweight config library for Java to let you write your config elegantly and flexibly.

Resources

License

Stars

Watchers

Forks