Skip to content

Installation Guide

CupOfTea is modular. You can import only the core engine and whichever IO format modules your application requires, or include the aggregator artifact cupoftea-all.

Prerequisites

  • Java: Java 17 LTS, Java 21 LTS, or later.
  • Build Tool: Maven 3.8+ or Gradle 7+.

Maven

1. Minimal Core

To use CupOfTea's in-memory columnar DataFrame engine without external IO dependencies:

<dependency>
    <groupId>io.github.cupoftea-labs</groupId>
    <artifactId>cupoftea-core</artifactId>
    <version>0.17.0</version>
</dependency>

2. Adding Format Modules

Add format modules as needed. The core engine dynamically discovers format readers and writers via java.util.ServiceLoader:

<!-- CSV Support (OpenCSV) -->
<dependency>
    <groupId>io.github.cupoftea-labs</groupId>
    <artifactId>cupoftea-csv</artifactId>
    <version>0.17.0</version>
</dependency>

<!-- JSON Support (Jackson) -->
<dependency>
    <groupId>io.github.cupoftea-labs</groupId>
    <artifactId>cupoftea-json</artifactId>
    <version>0.17.0</version>
</dependency>

<!-- Excel Support (.xlsx / .xls via Apache POI) -->
<dependency>
    <groupId>io.github.cupoftea-labs</groupId>
    <artifactId>cupoftea-excel</artifactId>
    <version>0.17.0</version>
</dependency>

<!-- Parquet Support (Apache Parquet / Hadoop) -->
<dependency>
    <groupId>io.github.cupoftea-labs</groupId>
    <artifactId>cupoftea-parquet</artifactId>
    <version>0.17.0</version>
</dependency>

<!-- HTML Table Ingestion (Jsoup) -->
<dependency>
    <groupId>io.github.cupoftea-labs</groupId>
    <artifactId>cupoftea-html</artifactId>
    <version>0.17.0</version>
</dependency>

<!-- YAML Support (SnakeYAML) -->
<dependency>
    <groupId>io.github.cupoftea-labs</groupId>
    <artifactId>cupoftea-yaml</artifactId>
    <version>0.17.0</version>
</dependency>

<!-- XML Support (Standard Java DOM) -->
<dependency>
    <groupId>io.github.cupoftea-labs</groupId>
    <artifactId>cupoftea-xml</artifactId>
    <version>0.17.0</version>
</dependency>

3. All-In-One Meta-Module

To include all format adapters in one go:

<dependency>
    <groupId>io.github.cupoftea-labs</groupId>
    <artifactId>cupoftea-all</artifactId>
    <version>0.17.0</version>
</dependency>

Gradle

Groovy DSL (build.gradle)

dependencies {
    // Core Engine
    implementation 'io.github.cupoftea-labs:cupoftea-core:0.17.0'

    // Add format modules as needed:
    implementation 'io.github.cupoftea-labs:cupoftea-csv:0.17.0'
    implementation 'io.github.cupoftea-labs:cupoftea-json:0.17.0'

    // Or import all modules:
    // implementation 'io.github.cupoftea-labs:cupoftea-all:0.17.0'
}

Kotlin DSL (build.gradle.kts)

dependencies {
    // Core Engine
    implementation("io.github.cupoftea-labs:cupoftea-core:0.17.0")

    // Add format modules as needed:
    implementation("io.github.cupoftea-labs:cupoftea-csv:0.17.0")
    implementation("io.github.cupoftea-labs:cupoftea-json:0.17.0")

    // Or import all modules:
    // implementation("io.github.cupoftea-labs:cupoftea-all:0.17.0")
}