From data collection to model building, Kotlin offers robust libraries facilitating
different tasks in the data pipeline.
In addition to its own libraries, Kotlin is 100% interoperable with Java. This interoperability helps to leverage
the entire ecosystem of tried-and-true Java libraries with excellent performance. With this perk, you can easily use either Kotlin
or Java libraries when working on Kotlin data projects.
Library |
Purpose |
Features |
Kotlin DataFrame
|
- Data collection
- Data cleaning and processing
|
- Operations for creating, sorting, and cleaning data frames, feature engineering, and more
- Processing of structured data
- Support for CSV, JSON, and other input formats
- Reading from SQL databases
- Connecting with different APIs to access data and increase type safety
|
Kandy
|
- Data exploration and visualization
|
|
KotlinDL
|
|
- Deep learning API written in Kotlin and inspired by Keras
- Training deep learning models from scratch or importing existing Keras and ONNX models for inference
- Transferring learning for tailoring existing pre-trained models to your tasks
- Support for the Android platform
|
Multik
|
- Data cleaning and processing
- Model building
|
- Mathematical operations over multidimensional arrays (linear algebra, statistics, arithmetics, and other calculations)
- Creating, copying, indexing, slicing, and other array operations
- Kotlin-idiomatic library with benefits such as type and dimension safety and swappable computational engines, running on the JVM or as native code
|
Kotlin for Apache Spark
|
- Data collection
- Data cleaning and processing
- Data exploration and visualization
- Model building
|
- Layer of compatibility between Apache Spark and Kotlin
- Apache Spark data transformation operations in Kotlin-idiomatic code
- Simple usage of Kotlin features, such as data classes and lambda expressions, in curly braces or method reference
|
Lets-Plot
|
- Data exploration and visualization
|
|
KMath
|
- Data cleaning and processing
- Data exploration and visualization
- Model building
|
- Modular library to work with mathematical abstractions in Kotlin Multiplatform (JVM, JS, Native, and Wasm)
- APIs for algebraic structures, mathematical expressions, histograms, and streaming operations
- Interchangeable wrappers over existing Java and Kotlin libraries, including ND4J, Apache Commons Math, and Multik
- Inspired by Python's NumPy but with other additional features like type safety
|
kravis
|
- Data exploration and visualization
|
|
Since Kotlin provides first-class interoperability with Java, you can use Java libraries for data tasks in your Kotlin code.
Here are some examples of such libraries:
Library |
Purpose |
Features |
Tablesaw
|
- Data collection
- Data cleaning and processing
- Data exploration and visualization
|
- Tools for loading, cleaning, transforming, filtering, and summarizing data
- Inspired by Plot.ly
|
CoreNLP
|
- Data cleaning and processing
|
- Natural language processing toolkit
- Linguistic annotations for text, such as sentiment and quote attributions
- Support for eight languages
|
Smile
|
- Data cleaning and processing
- Data exploration and visualization
- Model building
|
- Ready-made algorithms for machine learning and natural language processing
- Linear algebra, graph, interpolation, and visualization tools
- Provides functional Kotlin API, Scala API, Clojure API, and more
|
Smile-NLP-kt
|
- Data cleaning and processing
|
- Kotlin rewrite of the Scala implicits for the natural language processing part of Smile
- Operations in the format of Kotlin extension functions and interfaces
- Sentence breaking, stemming, bag of words, and other tasks
|
ND4J
|
- Data cleaning and processing
- Model building
|
- Matrix mathematics library for the JVM
- Over 500 mathematical, linear algebra, and deep learning operations
|
Apache Commons Math
|
- Data cleaning and processing
- Model building
|
- Mathematics and statistics operations for Java
- Correlations, distributions, linear algebra, geometry, and other operations
- Machine learning models
|
NM Dev
|
- Data cleaning and processing
- Model building
|
- Java math library of numerical algorithms
- Object-oriented numerical methods
- Linear algebra, optimization, statistics, calculus, and more operations
|
Apache OpenNLP
|
- Data cleaning and processing
- Model building
|
- Machine-learning-based toolkit for the processing of natural language text
- Tokenization, sentence segmentation, part-of-speech tagging, and other tasks
- Built-in tools for data modeling and model validation
|
Charts
|
- Data exploration and visualization
|
- JavaFX library for scientific charts
- Complex charts, such as logarithmic, heatmap, and force-directed graph
|
DeepLearning4J
|
|
- Deep learning library for Java
- Importing and retraining models (Pytorch, Tensorflow, Keras)
- Deploying in JVM microservice environments, mobile devices, IoT, and Apache Spark
|
OptaPlanner
|
|
- Solver utility for optimization planning problems
- Compatible with object-oriented and functional programming
|