Open-source project
apache/hop avatar
apache/hop

Apache Hop is a data pipeline engine with a desktop client

Hop Orchestration Platform

1,509 stars485 forksJavaApache-2.0

At a glance

What is it?
Apache Hop is an Apache Software Foundation project for data and metadata orchestration, written in Java, built with Maven and packaged as a client you launch with hop-gui.sh or hop-gui.bat. It suits teams replacing a desktop ETL tool with an ASF-governed one, and it carries export control obligations that a lighter library would not.
Who is it for?
Adopt Apache Hop when your team already runs Java, needs both a desktop client and a server-side engine for ETL and metadata orchestration, and wants an ASF-governed project rather than a vendor one. Do not adopt it if your pipelines are small enough to live in Python or SQL tooling, since the build alone requires JDK 21 and a full Maven install.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Two distribution paths, one engine

Hop is described as the Hop Orchestration Platform and aims at data and metadata orchestration, with repository topics covering ETL, pipelines, streaming and workflows. The scope is a full platform rather than a library: the repository carries `engine/`, `plugins/`, `core/`, `ui/`, plus `assemblies/` for packaging, `integration-tests/` and `web-tests/` for verification, and an `engine-bench/` directory that indicates the project treats engine throughput as something it measures.

Two UI stacks appear in the tree as `rcp/` and `rap/`, and a `docker/` directory plus `helm/` for Kubernetes packaging sit alongside them, so the same engine is intended to be reachable from a rich client, a web front end and a container deployment.

Metadata and orchestration go together here rather than being bolted on. A pipeline that moves data also needs to know where it came from and who owns it, and that bookkeeping is part of the platform's stated remit rather than a separate product.

The README's own framing is a stability promise rather than a feature list, and it invites bug reports and feature requests through GitHub Issues, mailing lists and Discussions. Its community feedback channels are worth weighing against a vendor product with a support contract.

Building from source needs JDK 21 and Maven

The requirement is specific: an OpenJDK 21 compiler, updated to the latest patch, with Maven 3.6.3 or higher recommended. The README asks you to confirm before building.

bash
mvn -version

That step exists because building on the wrong JDK silently produces a broken tree, and the README notes tests get skipped when the version is wrong. Clone and build:

bash
git clone https://github.com/apache/hop.git
cd hop
mvn clean install

A Maven wrapper is included for machines without Maven installed, and it pins the correct Apache Maven version for you:

bash
cd hop
./mvnw clean install

CI runs on Jenkins, with `Jenkinsfile`, `Jenkinsfile.daily` and a separate `Jenkinsfile.hop-web-selenium` for browser tests, and code quality is tracked on SonarCloud with a contributor-facing task to clear issues on it. A Gitpod configuration also exists.

The client is what most people install

Hop is not distributed as a single jar. The build produces a client archive under the client assembly, and that is what you run:

bash
cd assemblies/client/target
unzip hop-client-*.zip
cd hop

From there the launcher name depends on the platform: `hop-gui.bat` on Windows, `hop-gui.sh` on macOS and Linux. The same applies when you start from a release archive instead of a clone, which you can download from downloads.apache.org/hop/:

bash
tar -xf apache-hop*.tar.gz
cd apache-hop-*
mvn clean install

That two-step structure is the part that catches people out. Building a plugin or a transform means a full Maven install; running the tool means finding the assembled client. A change to a transform is not visible until you rebuild and relaunch, which shapes how you iterate on a pipeline.

The export classification is a real procurement issue

The README carries a cryptographic software notice that most project READMEs do not, and it has practical consequences. The ASF classifies the distribution under Export Commodity Control Number 5D002, covering information security software that uses asymmetric cryptographic functions, and states the distribution is eligible for export under the publicly available exemption at Section 742.15(b) of the BIS regulations for both object code and source.

The components named as containing the cryptography are specific: the PGP Encrypt and Decrypt transforms, the Apache Kafka transforms, the Apache POI transforms and the MQTT transforms. The README then advises checking your own country's laws on import, possession, use and re-export, and points at the Wassenaar Arrangement for background.

None of that makes the software unusable. It does mean that an organisation with a trade compliance function has a documented classification to review rather than an open question, and that modifying the encryption-adjacent transforms may change the picture. For an internal analytics team this is paperwork. For a vendor shipping Hop inside a product, it is a gate.

What to expect from the release cadence

The recent tags are worth reading carefully: 2.19.0-rc1 dated 2026-08-12, 2.18.1-rc1 on 2026-06-15 and 2.18.0-rc1 on 2026-05-27. Every one is a release candidate rather than a final release, and the naming sits between two schemes, with the tag reading 2.19.0-rc1 while the release title reads 2.19.0.

The repository is not archived and the last push was on 2026-10-16. What that means in practice is that a build from main and a tagged build are different things, and neither is obviously the one a production pipeline author tested. Pin a version rather than tracking main.

On licensing, the Apache License 2.0 applies with the standard NOTICE file present. The repository also holds SECURITY.md and THREAT_MODEL.md, and there are AI assistance files in the tree, AGENTS.md and CLAUDE.md, which indicate how contributors are expected to work with tooling in the repository.

The honest limitation is size. This is a large Java platform with a Maven build, an assembly step, a plugin system and a client to launch. That is the right shape when pipelines are long-lived business assets that several people maintain, and the wrong shape when the job is a single nightly load into a warehouse.

Editorial conclusion

Adopt Apache Hop when your team already runs Java, needs both a desktop client and a server-side engine for ETL and metadata orchestration, and wants an ASF-governed project rather than a vendor one. Do not adopt it if your pipelines are small enough to live in Python or SQL tooling, since the build alone requires JDK 21 and a full Maven install. Verify first that the distribution you download is cleared for your jurisdiction, because the ASF classifies it under ECCN 5D002, and pin a specific version since the recent tags are all release candidates such as 2.19.0-rc1.

Frequently asked questions

What Java and Maven versions does Apache Hop require?

An OpenJDK 21 compiler with the latest patch level, and Maven 3.6.3 or higher. The README asks you to run `mvn -version` first, since building on an older JDK causes tests to be skipped.

How do I build Apache Hop from source?

Clone the repository, then run `mvn clean install` in the hop directory, or `./mvnw clean install` to use the bundled Maven wrapper with the correct Maven version.

How do I start the Apache Hop client after building?

Go to `assemblies/client/target`, unzip `hop-client-*.zip`, change into the `hop` directory, then run `hop-gui.bat` on Windows or `hop-gui.sh` on macOS and Linux.

Is Apache Hop subject to export control restrictions?

The ASF classifies it under ECCN 5D002 because of cryptographic functions in the PGP, Kafka, POI and MQTT transforms, and states the distribution is eligible for the publicly available exemption under BIS Section 742.15(b) for both object and source code. The README advises checking your own jurisdiction's rules.

What license is Apache Hop released under?

The Apache License, Version 2.0, with the standard NOTICE file at the repository root.

Official sources

  1. apache/hop on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/apache-hop.svg)](https://hysenlabs.com/projects/apache-hop)

Was this useful?