SimplixStorage - Awesome library to store data in a better way 3.2.2

Epic standalone library to store data in YAML, JSON & Toml - Preserves comments!

  1. SimplixSoftworks
    Native Minecraft Version:
    1.16
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    Source Code:
    https://github.com/Simplix-Softworks/SimplixStorage
    Languages Supported:
    German

    [​IMG]

    [​IMG]

    Do you want to work more productive with YAML, JSON & TOML files?

    Dou you want to preserve your comments in YAML-Files while editing?

    Do you want to save your config files easily and independently from Bukkit or BungeeCord?
    Want to do more than just use simple .yml files store data?
    Are you looking for a powerful "bukkitlike" (Very similar to Bukkit config) library to store data in files?

    Do you want to save your self a lot of time & write up to 90% less code while working with config files?


    Then this library is just right for you.

    I was looking for a library that I could use to store data with Bukkit like methods without being dependent on Bukkit/BungeeCord. But there was nothing out there so I decided to write my own library. Of course, there are a few libraries with bukkitlike methods but no one has the features that I need. ThunderBolt-2 for example only supports JSON files but does not support nested objects. Now I'm publishing this library because I think libraries of high quality should be publicly available for everyone Now it is here: SimplixStorage!

    At the moment SimplixStorage supports four file types:

    A very fast and slim file format. It is much faster than YAML files and is, therefore, better suited for storing larger amounts of data, such as player data (rank, money, playtime, etc.)

    An also fast and slime file format. It is also very fast but very easy to read.
    At the moment it is very uncommon but it is a very brilliant file format.
    You could use it to store player data or just configure your plugin.

    I think everyone here knows YAML files as they are very common in Bukkit development YAML files are not as fast as JSON files, but they are easier to read and are therefore more suitable than configuration files.

    Maybe you are asking for the benefits of SimplixStorage while
    Bukkit & BungeeCord have their own possibilities to store data in files.
    So here are the:

    [​IMG]


    [​IMG]

    Professional workflow:
    Most professional developers on SpigotMC are using their own configuration library to fit their needs - they don't only use the bukkit one.
    For SimplixStorage I have taken a look at very many of these private libraries talked to developers and pointed out their many productivity boosters.

    SimplixStorage combines the best ideas of many great developers in one brilliant library.

    Standalone:
    This library does not depend on any other plugin and even not on Bukkit or BungeeCord!

    You can use this in Bukkit or Proxy plugins - and even standalone Java applications are supported!
    You can use this on any Minecraft-version out there and it totally do es not matter which version platform or whatever you use -

    SimplixStorage just works.



    Ease to use:

    Although easy to understand after some training the Bukkit&Bungee Configuration classes can be quite confusing - SimplixStorage is designed to be easy(And very powerful at the same time)


    All directories will be created automatically if needed if a file already exists it will just be loaded. And there are so much easier to use productivity boosters!


    [​IMG]

    Flexibility - You decide!:

    Do you want more than only one filetype?


    As already mentioned you can use more than only one filetype: Do you want your datafile faster or more readable (for humans)?

    SimplixStorage enables you to decide.


    [​IMG]
    [​IMG]


    Productivity:

    Sick of typing hundreds of lines just for a config class?


    If you want to be productive, this library is just right for you: I've been working with config files and this stuff for a long time and I know how annoying the default checks can be so I decided to implement custom methods that will boost your productivity!

    We also improved your methods over time in order to constantly increase the benefit SimplixStorage provides you.

    SimplixStorage uses the most cutting-edge technologies to fast track your Java-Application.

    With this productivity boosters, you will become able to be way more productive than your competitors and totally outrun them by having an almost unfair advantage.

    Here you can see how it works:

    Main Productivity-Boosters:

    setDefault:
    It sets a value only if the file does not yet contain the associated key.
    This saves you from various contains checks in some cases this will reduce the code you have to write by 90%!

    getOrDefault:
    This method can be used to retrieve a default value from a file.
    Instead of using a lot of duplicated & hard to read if conditions you can just use getOrDefault.
    This method can make your code way cleaner and thus way easier to read and understand.


    getOrSetDefault:
    It sets a value only if the file does not yet contain the associated key.
    If the file does not yet contain the file it will return the default value.
    If the file already contains the key it just returns the value of it (and not the default value)
    This is incredibly helpful if you want to store player data or things like that in a file!

    It's also very helpful if you want to have a multilingual plugin.
    You can just get&set the messages in one line!
    Believe me, this saves large amounts of time


    [​IMG]

    setPathPrefix:

    This method sets a pathPrefix so you don't have to type so much!

    This avoids you from typing

    get("spawn.x")
    get("spawn.y")
    get("spawn.z")

    instead, you can just type:

    setPathPrefix("spawn")

    and then

    get("x")

    This method also reduces the amount of code you have to write dramatically
    and will make your code more readable!


    Intelligent:
    Forget your /config reload command!
    SimplixStorage reloads the files automatically for you - But only if the file has changed.
    And of course, you can configure how SimplixStorage reloads your file


    Comment preserving!


    SimplixStorage preserves all comments!
    Yes, it does!
    The config class, for example, handles this automatically in the default Yaml class you just have to type:

    [​IMG]

    All your comments in y
    our file will be preserved!
    No other library out there is enabled to do that!

    If you have the same key in one YAML file multiple times the comments above it may be placed in the wrong order.
    Also, it is not yet possible to preserve side comments.
    This is caused because of the way YamlBeans saves its values.
    I will have to write my own YAML-Parser to fix that.


    Set Headers!
    No other library in this world enables you to edit your YAML Comments so easily as SimplixStorage:

    [​IMG]
    [​IMG]
    .
    Documentation:
    There is extremely good documentation on how to use this library

    on the GitHub-Page of SimplixStorage!


    Apache-2-Licensed:
    SimplixStorage is licensed under the Apache-2.0-License

    what means that you can use this library in your open and closed source
    applications(Apache-2.0-License is compatible with GLPv3).
    This is one of the greatest benefits as I think because many libraries out there are licensed under GLP or some copyleft license and you have to license your work under these copyleft licenses, too if you are using their
    projects.

    After I've shown the benefits, I will show you the

    Ways of Installation:
    There are 2 possible ways to install making use of the SimplixStorage in your plugin.

    1) Use with the SimplixCore
    The SimplixCore contains SimplixStorage as a library.
    If you install it as a plugin on your server you won't need to shade SimplixStorage into your jar-file.

    1: Download SimplixCore and install it on your server:
    Spigot
    BungeeCord

    2) Put the this into your pom.xml file:
    1. Place this in your repository-section:
    Code (Text):

    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
     
    2. Place this in your dependency-section:

    Code (Text):

    <dependency>
        <groupId>com.github.simplix-softworks</groupId>
        <artifactId>SimplixStorage</artifactId>
        <version>3.1.9</version>
       <scope>provided</scope> <!-- Must be provided since we want to use it from the SimplixCore!-->
    </dependency>
     

    2) Or: Use SimplixStorage standalone


    You will need Maven to use SimplixStorage.
    (For a link to the GitHub release page just click the download button.)
    Example pom.xml: https://pastebin.com/S7UE516z
    __
    1. Place this in your repository-section:
    Code (Text):

    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
     
    2. Place this in your dependency-section:
    Code (Text):

    <dependency>
        <groupId>com.github.simplix-softworks</groupId>
        <artifactId>SimplixStorage</artifactId>
        <version>3.1.9</version>
       <scope>compile</scope> <!-- Must be compile since we want to shade it to your jarfile!-->
    </dependency>
     
    3. Important! Use a shade plugin to make sure that the library is shaded into your final .jar file when your plugin is compiled. The relocation is optional but heavily recommended.
    If you don't know how or where to put this in your build section, just look at the example pom.

    Code (Text):
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <createDependencyReducedPom>false</createDependencyReducedPom>
            <relocations>
                <relocation>
                    <pattern>de.leonhard</pattern>
                    <shadedPattern>yourpackage.yourname.storage</shadedPattern>
                </relocation>
            </relocations>
        </configuration>
    </plugin>
    After this, you should be good to go!

    [​IMG]
    If there are any questions or bugs, they will be fixed as soon as possible.
    If you have any feature request(Even more features are planned)
    There are multiple ways to create a bug report or a feature request:

    -You can pm us via SpigotMC
    - Support-Discord

    But the best way is to create an issue at the GitHub-Page of SimplixStorage


    [​IMG]

    https://github.com/Simplix-Softworks/SimplixStorage

    Images

    1. image.png

Recent Reviews

  1. Shadowpauler
    Shadowpauler
    5/5,
    Version: 3.2.1
    I honestly don't use this, nor am I able to use it. I am just here to say, it's awesome because developers love it! ^~^
    1. SimplixSoftworks
  2. Zilley
    Zilley
    5/5,
    Version: 3.1.9
    This is such a life saver! Makes my code SO much cleaner, I absoloutely love the way TOML looks and working with files doesn't feel like a chore anymore :) thank you so much for this amazing resource!!!
    1. SimplixSoftworks
      Author's Response
      Thank you so much!
  3. PATLIYOSUN
    PATLIYOSUN
    5/5,
    Version: 3.1.4
    Perfect! by the way, please fix download link thx .
  4. TitanDevX
    TitanDevX
    5/5,
    Version: 3.1.2
    Best andd fastest library!! Pretty easy and convenient usage. Thanks for developers and for everyone who helped this!
  5. Ddgf
    Ddgf
    5/5,
    Version: 3.0.9
    This library is the best choice against the default config module. All the needs are there, that is to use several files, save them etc.
  6. InsideIntel
    InsideIntel
    5/5,
    Version: 3.0.7
    This library makes everything 10x easier to save things such as a messages file, a json file to hold money, and things like that. I just want to thank you for making this thing. Very High Quality and easy to use.
    5 stars from me :D
  7. test414EFF
    test414EFF
    5/5,
    Version: 3.0.6
    Amazing storage library from an amazing developer! Very easy to use, high quality, and efficient!
  8. lokka30
    lokka30
    5/5,
    Version: 3.0.0
    This storage library is purely amazing.

    First of all, the support. I messaged the developer Leonhard - a short time later, I was met with great help on using the API.
    Second, the amount of typing and issues this thing replaces has made programming my plugins far easier.
    Third, I couldn't skip the plugins performance. Managing files are very fast and efficient.

    The only thing I could ask more of is the wiki. I believe it needs a little more development there. But everything else is solid.

    I would highly recommend this library to developers in need of file management.
    Thanks to the developers behind the plugin!
    1. SimplixSoftworks
      Author's Response
      Thank you so much for the feedback:) We really appreciate it.
  9. Franchiccosd
    Franchiccosd
    5/5,
    Version: 2.3.8
    Good api but can you also add mysql database support?
    ------------------------------------
  10. 1stian
    1stian
    5/5,
    Version: 2.3.6
    I was looking for a library that could make my life a bit easier when it came to saving and loading configs. And WOW, I just found the perfect one! Works great and very helpful and friendly developer! Thanks for a great library for us to use!