JavaPermutationTools is a Java library designed for working with permutations and sequences. It provides various Java classes, interfaces, and functionalities to represent, generate, and compute operations on permutations and sequences. The library includes implementations of different permutation distance metrics as well as distance metrics on sequences like strings, arrays, and other ordered data types.
The library supports Java 17+ and offers compatibility with different versions of Java:
|4.w.x to 5.y.z||Java 17+|
|1.x.y to 2.x.y||Java 8+|
The library jar files can be obtained from Maven Central, GitHub Packages, or GitHub Releases. It follows the Semantic Versioning scheme with version numbers in the format MAJOR.MINOR.PATCH.
To build the library using Maven, execute "mvn package" at the repository root. This command compiles all classes, runs tests, generates Javadocs, and creates the jar files in the target directory. Additional options are available for generating code coverage reports and running static analysis tools.
Example programs demonstrating library usage are available in a separate repository. The library provides a Java module, org.cicirello.jpt, which can be included in your project's module-info.java file. Starting from version 3.0.0, randomization and math utilities are moved to separate libraries.
To import the library from Maven Central, add the appropriate dependency information to your pom.xml file. If importing from GitHub Packages, add the dependency and repository details accordingly. Prebuilt jar files can also be downloaded manually from GitHub Releases. The library is licensed under the GNU General Public License 3.0.
If you wish to contribute to the project, please refer to the contribution guidelines and adhere to the Contributor Covenant Code of Conduct.