back to home

Kotlin / dataframe

Kotlin DataFrame: typesafe in-memory structured data processing for JVM

1,033 stars
80 forks
334 issues
KotlinJavaJavaScript

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing Kotlin/dataframe in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/Kotlin/dataframe)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

Kotlin DataFrame: typesafe in-memory structured data processing for JVM Kotlin DataFrame aims to reconcile Kotlin's static typing with the dynamic nature of data by utilizing both the full power of the Kotlin language and the opportunities provided by intermittent code execution in Jupyter notebooks and REPL. • **Hierarchical** — represents hierarchical data structures, such as JSON or a tree of JVM objects. • **Functional** — the data processing pipeline is organized in a chain of transformation operations. • **Immutable** — every operation returns a new instance of reusing underlying storage wherever it's possible. • **Readable** — data transformation operations are defined in DSL close to natural language. • **Practical** — provides simple solutions for common problems and the ability to perform complex tasks. • **Minimalistic** — simple, yet powerful data model of three column kinds. • **Interoperable** — convertable with Kotlin data classes and collections. This also means conversion to/from other libraries' data structures is usually quite straightforward! • **Generic** — can store objects of any type, not only numbers or strings. • **Typesafe** — on-the-fly generation of extension properties for type safe data access with Kotlin-style care for null safety. • **Polymorphic** — type compatibility derives from column schema compatibility. You can define a function that requires a special subset of columns in a dataframe but doesn't care about other columns. In notebooks this works out-of-the-box. In ordinary projects this requires casting (for now). Integrates with Kotlin Notebook. Inspired by krangl, Kotlin Collections and pandas 🚀 Quickstart Looking for a fast and simple way to learn the basics? Get started in minutes with our Quickstart Guide. It walks you through the core features of Kotlin DataFrame with minimal setup and clear examples — perfect for getting up to speed in just a few minutes. Documentation Explore **documentation** for details. You could find the following articles there: • Guides and Examples • Get started with Kotlin DataFrame • Working with Data Schemas • Setup compiler plugin in Gradle project • Full list of all supported operations • Reading from SQL databases • Reading/writing from/to different file formats like JSON, CSV, Apache Arrow • Joining dataframes • GroupBy operation • Rendering to HTML What's new 1.0.0-Beta4: Release notes Check out this notebook with new features in v0.15. Setup > For more detailed instructions on how to get started with Kotlin DataFrame, refer to the > Getting Started. Kotlin Notebook You can use Kotlin DataFrame in Kotlin Notebook, or other interactive environment with Kotlin Jupyter Kernel support, such as Datalore, and Jupyter Notebook. You can include all the necessary dependencies and imports in the notebook using *line magic*: This will add the of the version bundled in the selected Kotlin Jupyter kernel. You can use to get the latest stable version without updating the Kotlin kernel: Or manually specify the version: > [!WARNING] > Please, use Kotlin Jupyter kernel version or higher for descriptor compatibility > > Use specified version in Kotlin Notebook. > Due to an known issue, > common version works incorrectly in Notebook. > > If you use in your notebook, add it after the : > Refer to the Setup Kotlin DataFrame in Kotlin Notebook for details. Gradle Add dependencies in the script: Make sure that you have in the list of repositories: Refer to Get started with Kotlin DataFrame on Gradle for detailed setup instructions (including Groovy DSL). • You can also check the Custom Gradle Configuration if you don't need certain formats as dependencies. • For Android projects, see Setup Kotlin DataFrame on Android. • See IDEA Gradle example projects and the Gradle project with the Kotlin DataFrame Compiler plugin. Refer to the Setup Kotlin DataFrame in Kotlin Notebook for details. Maven Add dependencies in the configuration file: Make sure that you have in the list of repositories: Refer to Get started with Kotlin DataFrame on Maven. • See the Maven project with the Kotlin DataFrame Compiler plugin. Code example This example of Kotlin DataFrame code with the Compiler Plugin enabled. See the full project. See also this example in Kotlin Notebook. Explore **more examples here**. Data model • is a list of columns with equal sizes and distinct names. • is a named list of values. Can be one of three kinds: • — contains data • — contains columns • — contains dataframes Visualizations Kandy plotting library provides seamless visualizations for your dataframes. Kotlin, Kotlin Jupyter, Arrow, and JDK versions This table shows the mapping between main library component versions and minimum supported Java versions, along with other recommended versions. | Kotlin DataFrame Version | Minimum Java Version | Kotlin Version | Kotlin Jupyter Version | Apache Arrow Version | Compiler Plugin Version | Compatible Kandy version | |--------------------------|----------------------|----------------|------------------------|----------------------|-------------------------|--------------------------| | 0.10.0 | 8 | 1.8.20 | 0.11.0-358 | 11.0.0 | | | | 0.10.1 | 8 | 1.8.20 | 0.11.0-358 | 11.0.0 | | | | 0.11.0 | 8 | 1.8.20 | 0.11.0-358 | 11.0.0 | | | | 0.11.1 | 8 | 1.8.20 | 0.11.0-358 | 11.0.0 | | | | 0.12.0 | 8 | 1.9.0 | 0.11.0-358 | 11.0.0 | | | | 0.12.1 | 8 | 1.9.0 | 0.11.0-358 | 11.0.0 | | | | 0.13.1 | 8 | 1.9.22 | 0.12.0-139 | 15.0.0 | | | | 0.14.1 | 8 | 2.0.20 | 0.12.0-139 | 17.0.0 | | | | 0.15.0 | 8 | 2.0.20 | 0.12.0-139 | 18.1.0 | | 0.8.0 | | 1.0.0-Beta2 | 8 / 11 | 2.0.20 | 0.12.0-383 | 18.1.0 | 2.2.20-dev-3524 | 0.8.1-dev-66 | | 1.0.0-Beta3n (notebooks) | 8 / 11 | 2.2.20 | 0.15.0-587 (K1 only) | 18.3.0 | - | 0.8.1n | | 1.0.0-Beta3 | 8 / 11 | 2.2.20 | 0.15.0-587 | 18.3.0 | 2.2.20 / IDEA 2025.2+ | 0.8.1 | | 1.0.0-Beta4n (notebooks) | 8 / 11 | 2.2.21 | 0.16.0-736 | 18.3.0 | - | 0.8.3 | | 1.0.0-Beta4 | 8 /…