This page introduces the hugegraph-toolchain repository: what it is, what modules it contains, and how those modules relate to each other and to the external HugeGraph Server. It is the starting point for navigating the rest of this wiki.
For details about any specific module, follow the links in the navigation table below.
hugegraph-toolchain?hugegraph-toolchain is an Apache-licensed monorepo (org.apache.hugegraph:hugegraph-toolchain) that packages all official client SDKs, data ingestion tools, and management utilities for Apache HugeGraph The toolchain does not include the graph database engine itself — it only contains the tools that communicate with a running HugeGraph Server over its REST API.
The repository is structured as a Maven multi-module project. The root pom.xml declares six top-level modules and acts as the version catalog and build configuration authority for all of them.
Sources: pom.xml91-98 pom.xml100-150 README.md11-13
| Module | Artifact ID | Type | Description |
|---|---|---|---|
hugegraph-client | hugegraph-client | JAR library | Java REST SDK; the shared communication layer used by all other modules |
hugegraph-loader | hugegraph-loader | JAR / shaded JAR | Batch data ingestion from files, HDFS, JDBC, Kafka, HBase, Hive |
hugegraph-spark-connector | hugegraph-spark-connector | JAR | Spark DataSource v2 API for reading/writing graph data |
hugegraph-tools | hugegraph-tools | JAR | CLI for backup, restore, migrate, and clone operations |
hugegraph-hubble | hugegraph-hubble (parent POM) | POM → 3 sub-modules | Web-based graph management platform (Spring Boot + React) |
hugegraph-dist | hugegraph-dist | Assembly | Aggregates all modules into the final release tarball |
Sources: pom.xml91-98 hugegraph-loader/pom.xml29-38 hugegraph-tools/pom.xml29-33 hugegraph-hubble/pom.xml29-42 hugegraph-dist/pom.xml30-35
The following diagram maps artifact IDs to their Maven dependencies. hugegraph-client is the foundational module; all other tools depend on it. hugegraph-dist is the terminal aggregation point.
Module dependency graph (artifact IDs)
Sources: pom.xml91-98 hugegraph-loader/pom.xml163-185 hugegraph-tools/pom.xml44-76 hugegraph-hubble/hubble-be/pom.xml96-145 hugegraph-dist/pom.xml37-92
This diagram bridges the module names to the concrete Java classes and shell scripts that users invoke.
Entry points by module
Sources: hugegraph-hubble/hubble-be/pom.xml188-189 hugegraph-tools/assembly/bin/hugegraph152-154 hugegraph-loader/README.md98-104 README.md146-161
| Module | Language | Key Frameworks / Libraries |
|---|---|---|
hugegraph-client | Java 8 | Apache HttpClient, Jackson 2.12, LZ4 |
hugegraph-loader | Java 8 | Spark 3.2.2 (Scala 2.12), Flink 1.13.5, HBase 2.2.3, Hadoop 3.3.1, Hive 3.1.3 |
hugegraph-spark-connector | Java 8 / Scala 2.12 | Spark DataSource v2 |
hugegraph-tools | Java 8 | JCommander 1.72, Hadoop client |
hubble-be | Java 8 | Spring Boot 2.1.8, MyBatis-Plus 3.3.0, H2, OkHttp 4.10 |
hubble-fe | TypeScript | React, MobX, Ant Design, vis-network, Yarn |
Sources: pom.xml100-150 hugegraph-hubble/pom.xml44-47 hugegraph-hubble/hubble-be/pom.xml34-165
The build is controlled by a single Maven invocation from the repository root. The hugegraph-dist module assembles the final release tarball by collecting the packaged outputs of hugegraph-loader, hugegraph-tools, and hugegraph-hubble.
mvn clean install -DskipTests -Dmaven.javadoc.skip=true -ntp
The final artifact is named apache-hugegraph-toolchain-incubating-{version}.tar.gz and is placed in target/. The hugegraph-dist/pom.xml constructs this by moving the assembled directories of each sub-module into a single directory tree before compressing.
The current ${revision} is 1.7.0, as declared in pom.xml101
For full details on the build system, quality gates, CI/CD pipelines, and release signing, see page 7.
Sources: pom.xml101-108 hugegraph-dist/pom.xml47-92 hugegraph-dist/scripts/apache-release.sh1-106
Official Docker images are published on Docker Hub for two modules:
| Image | Default Port | Entry Point |
|---|---|---|
hugegraph/hugegraph-hubble | 8088 | bin/start-hubble.sh -f true |
hugegraph/hugegraph-loader | — | bin/hugegraph-loader.sh |
The Hubble Dockerfile builds hugegraph-client and hugegraph-loader first (since hubble-be embeds the loader), then packages hubble-be and the React frontend together.
Sources: hugegraph-hubble/Dockerfile18-44 hugegraph-loader/Dockerfile18-51 hugegraph-loader/docker/example/docker-compose.yml1-38
hugegraph-toolchain is entirely client-side. Every module communicates with a separately deployed HugeGraph Server instance through its REST API (default port 8080). The toolchain does not include graph storage or query engine code.
The minimum required HugeGraph Server version for current toolchain functionality is 1.5.0.
Sources: README.md106-112 hugegraph-client/README.md8
| Page | Topic |
|---|---|
| 2 | hugegraph-client — Java SDK overview |
| 2.1 | HugeClient, HugeClientBuilder, and all Manager classes |
| 2.2 | Graph schema model (PropertyKey, VertexLabel, EdgeLabel, IndexLabel) |
| 2.3 | REST transport layer (RestClient, SSL, connection pooling) |
| 3 | hugegraph-loader — data ingestion overview |
| 3.1 | LoadOptions configuration reference |
| 3.2 | Supported data sources |
| 3.3 | Spark and Flink execution engines |
| 3.4 | Task concurrency and error handling |
| 4 | hugegraph-hubble — web platform overview |
| 4.1 | hubble-be Spring Boot backend |
| 4.2 | hubble-fe React frontend |
| 4.3 | Hubble deployment and startup |
| 5 | hugegraph-tools — CLI utilities |
| 6 | hugegraph-spark-connector — Spark DataSource v2 |
| 7 | Build and release system |
| 7.1 | Parent POM and dependency management |
| 7.2 | Quality gates and build plugins |
| 7.3 | CI/CD pipelines |
| 7.4 | Distribution and release packaging |
Refresh this wiki
This wiki was recently refreshed. Please wait 5 days to refresh again.