Addax is a free, open source data engineering & integration project written in Java and released under Apache-2.0. It has 1,439 GitHub stars, 343 forks and 5 open issues, and was last pushed 9 hours ago. On this registry it ranks #32 of 39 tracked projects in Data Engineering & Integration, with 5 head-to-head comparisons available. It gained 1 stars over the last 3 tracked days.

What is Addax?

What it is

Addax is an open-source, Java-based ETL tool for moving data between relational databases, NoSQL stores, file formats, and big-data systems. It is an actively maintained fork of Alibaba DataX, which the README describes as frozen since 2023, and it is positioned as the maintained successor for users who need continued updates, dependency fixes, and plugin development in the DataX ecosystem.

The concrete problem it solves is repetitive, configuration-driven data transfer across heterogeneous systems. Instead of writing custom extract, transform, and load code for each source and destination, users define jobs in JSON and run them through Addax plugins. The project lives in the open-source data integration and data engineering ecosystem, with Apache-2.0 licensing and support for sources such as ClickHouse, Hadoop, HDFS, Hive, Impala, InfluxDB, Excel, and other SQL or NoSQL systems.

Key capabilities

  • Addax supports over 20 SQL and NoSQL data sources, including ClickHouse, Hadoop, HDFS, Hive, Impala, InfluxDB, Excel, and database systems.
  • Addax runs transfers from JSON-based job descriptions, with sample job files and the command pattern bin/addax.sh job/job.json.
  • Addax provides an extensible plugin architecture and a growing plugin ecosystem, with new data-source plugins added when there is real community demand.
  • Addax ships Docker images, including quay.io/wgzhao/addax:latest, and offers a shell installation script for Linux and macOS.
  • Addax supports source builds with JDK 17 and Maven, and it maintains monthly releases that bundle dependency and CVE updates and bug fixes.

Who uses it and how

  • Data engineers use Addax to move data between SQL databases, NoSQL stores, Hadoop-based systems, Hive, Impala, InfluxDB, and Excel files through JSON job definitions.
  • Teams that previously used DataX can adopt Addax as an actively maintained successor when they need ongoing releases, security updates, and continued plugin maintenance.
  • Operators run transfer tasks by invoking bin/addax.sh with a job file, either on a host with JDK 17 or inside the provided Docker image.

Getting started

Users can pull quay.io/wgzhao/addax:latest and run /opt/addax/bin/addax.sh /opt/addax/job/job.json, install the project with the provided shell script, or compile it from source with JDK 17 and Maven.

When to use it — and when not to

Addax is a good fit when you need an Apache-2.0 Java ETL tool for many SQL, NoSQL, file, and big-data sources and want a maintained successor to DataX. It is less suitable if you need a hosted service, a non-Java runtime, or rapid addition of niche plugins, because new data-source plugins are added when there is real community demand and self-hosters must operate the Java runtime, job files, and source and target systems themselves.

project readme (upstream, from github) — read inline

Addax Logo

Addax

A versatile open-source ETL tool

Addax is an extensible ETL (Extract, Transform, Load) tool supporting over 20 SQL/NoSQL data sources, forked from Alibaba's DataX, which has been frozen since 2023 — Addax is its actively maintained successor. It provides a growing ecosystem of plugins and offers easy-to-follow configuration for data integrations.

Release Version Maven Package

简体中文


🚀 Features

  • Supports 20+ SQL and NoSQL data sources, and easily extendable for more.
  • Configurable via simple JSON-based job descriptions.
  • Actively maintained with improved architecture and added functionality compared to DataX.
  • Docker images for quick deployment.

📚 Documentation

Detailed instructions on installation, configuration, and usage are available:


💚 Project Status

Addax is actively maintained. The project is in a mature maintenance phase by design:

  • Monthly maintenance releases. A new release ships roughly every month (see Releases), bundling dependency/CVE updates and bug fixes — even when there are no new features to announce.
  • Responsive issue triage. Open issues are typically answered and resolved within days, not months.
  • Stable by intent. Plugin functionality is deliberately kept stable: we fix bugs and update dependencies rather than chasing feature churn. New data-source plugins are added when there is real community demand — if you need one, open an issue.
  • Open to contribution. PRs are reviewed continuously. See CONTRIBUTING.md for how to contribute.

For maintainers, the release process is documented in RELEASING.md.


📦 Supported Data Sources

Addax supports a wide range of database systems and file sources. Below is a selection of supported platforms:

See the full list of supported data sources.


🛠️ Getting Started

Addax can be quickly installed and used via Docker, installation scripts, or compiled from source.

1. Use docker image

Pull the prebuilt Docker image and run a test job:

docker pull quay.io/wgzhao/addax:latest
docker run -ti --rm --name addax \
  quay.io/wgzhao/addax:latest \
  /opt/addax/bin/addax.sh /opt/addax/job/job.json

2. Use installation script

Install Addax with a single command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/wgzhao/Addax/master/install.sh)"

Installation paths: /usr/local (macOS), /opt/addax/ (Linux).

3. Compile and Package from Source

  • Java Compiler: JDK 17

For developers aiming to create custom-builds, compile and package Addax locally:

git clone https://github.com/wgzhao/addax.git addax
cd addax
export MAVEN_OPTS="-DskipTests -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Dgpg.skip=true"
mvn clean package
mvn package -Pdistribution

The compiled binary will be in target/addax-.

4. Run Your First Task

Load sample job configuration and test the setup:

bin/addax.sh job/job.json

Explore more example jobs


📖 Runtime Requirements

  • Java Runtime: JDK 17
  • Python Version: Python 2.7+ / 3.7+ (Windows only)

🔗 Related Projects

  • addax-admin - A web-based management tool for administering Addax data collection tasks
  • addax-docs - Comprehensive documentation for Addax, including user guides and API references

🧩 Developing Addax

For AI assistants: project-specific knowledge and conventions are documented in SKILL.md. Please read it before working on this repo.


Code Style Guidelines

Follow general Java conventions and patterns:

  1. Use IntelliJ IDE with Airlift's Code Style
  2. Categorize exceptions clearly with AddaxException (e.g., AddaxException(REQUIRE_VALUE, "missing required parameter")).
  3. Use the Java 8 Stream API cautiously (avoid in performance-sensitive areas).
  4. Avoid ternary operators for non-trivial expressions.
  5. Include proper Apache License headers in every file.

Refer to our Programming Guidelines for commit message formats.


🗓️ Versioning Scheme

This project adheres to the Semantic Versioning (SemVer) standard with the format x.y.z. The meanings of each seg

readme truncated — read the full docs on github

Frequently asked questions

Is Addax free to use?

Addax is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Addax do?

Actively maintained fork of Alibaba DataX — a fast, versatile ETL tool for RDBMS/NoSQL data transfer

What is Addax written in?

Addax is primarily written in Java. Its source is publicly available at https://github.com/wgzhao/Addax, and it has 1,439 GitHub stars.