JNumberTools is an open-source Java library that tames massive combinatorial problems in big data pipelines, delivering scalable permutations, combinations, Cartesian products, and rankings. Integrated with Apache Spark, Flink, and Hadoop for batch and stream processing, it outperforms libraries like Apache Commons and Guava with constrained generation and lexicographical sampling. From synthetic data generation to cybersecurity, bioinformatics, and software testing, JNumberTools empowers data engineers, developers, and researchers to solve real-world challenges efficiently.
Key Features:
- Versatile applications in machine learning, cryptography, testing, and optimization, with production-ready performance.
- Stream-based APIs for constrained permutations, combinations, and Cartesian products, optimized for distributed pipelines.
- Lexicographical sampling and ranking for efficient exploration of large combinatorial spaces.
- Seamless integration with Spark, Flink, and Hadoop for big data workflows.
The latest release of the library is available on GitHub. It is available through The Maven Central Repository here. Add the following section to your configuration(pom/gradle etc) file.
<dependency>
<groupId>io.github.deepeshpatel</groupId>
<artifactId>jnumbertools</artifactId>
<version>3.0.1</version>
</dependency>Gradle
implementation 'io.github.deepeshpatel:jnumbertools:3.0.1'SBT
libraryDependencies += "io.github.deepeshpatel" % "jnumbertools" % "3.0.1"- BigInteger Support: Handle indices up to 10^100 and beyond
- Memory Efficient: Stream-based generation for massive datasets
- Big Data Ready: Native integration with Apache Spark, Flink, Hadoop
- Optimized Algorithms: Efficient lexicographical generation and ranking
Currently Available Algorithms
- Permutations: 23 different types of permutations
- Combinations: 15 different types of combinations
- Set/subset generations: 7 different types available
- Cartesian Product: 4 different types of products
- Ranking of permutations & combinations: 7 different types of rankings
- Number system algorithms: 3 different types for combinatorics
- Math Functions
