A comprehensive suite of client SDKs, data tools, and management utilities for Apache HugeGraph graph database. Build applications, load data, and manage graphs with production-ready tools.
Quick Navigation: Architecture | Quick Start | Modules | Build | Docker | Related Projects
HugeGraph Ecosystem:
- hugegraph - Core graph database (pd / store / server / commons)
- hugegraph-computer - Distributed graph computing system
- hugegraph-ai - Graph AI/LLM/Knowledge Graph integration
- hugegraph-website - Documentation and website
graph TB
subgraph server ["HugeGraph Server"]
SERVER[("Graph Database")]
end
subgraph distributed ["Distributed Mode (Optional)"]
PD["hugegraph-pd<br/>(Placement Driver)"]
STORE["hugegraph-store<br/>(Storage Nodes)"]
end
subgraph clients ["Client SDKs"]
CLIENT["hugegraph-client<br/>(Java)"]
end
subgraph data ["Data Tools"]
LOADER["hugegraph-loader<br/>(Batch Import)"]
SPARK["hugegraph-spark-connector<br/>(Spark I/O)"]
end
subgraph mgmt ["Management Tools"]
HUBBLE["hugegraph-hubble<br/>(Web UI)"]
TOOLS["hugegraph-tools<br/>(CLI)"]
end
SERVER <-->|REST API| CLIENT
PD -.->|coordinates| STORE
SERVER -.->|distributed backend| PD
CLIENT --> LOADER
CLIENT --> HUBBLE
CLIENT --> TOOLS
CLIENT --> SPARK
HUBBLE -.->|WIP: pd-client| PD
LOADER -.->|Sources| SRC["CSV | JSON | HDFS<br/>MySQL | Kafka"]
SPARK -.->|I/O| SPK["Spark DataFrames"]
style distributed stroke-dasharray: 5 5
ASCII diagram (for terminals/editors)
βββββββββββββββββββββββββββ
β HugeGraph Server β
β (Graph Database) β
βββββββββββββ¬ββββββββββββββ
β REST API
β β β β β β β β β β β β βΌ β β β β β β β β β β β β
Distributed (Optional)β
β βββββββββββββ β βββββββββββββ β
βhugegraph- βββββββββ΄βββββββΊβhugegraph- β
β β pd β β store β β
βββββββββββββ βββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β
β
βββββββββββββββββββββββΌββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββββ ββββββββββββββββββ ββββββββββββββββββ
β hugegraph- β β Other Client β β Other REST β
β client (Java) β β SDKs (Go/Py) β β Clients β
βββββββββ¬βββββββββ ββββββββββββββββββ ββββββββββββββββββ
β depends on
βββββββββΌββββββββββββ¬ββββββββββββββββββββ
β β β β
βΌ βΌ βΌ βΌ
ββββββββββ ββββββββββ ββββββββββββ βββββββββββββββββββββ
β loader β β hubble β β tools β β spark-connector β
β (ETL) β β (Web) β β (CLI) β β (Spark I/O) β
ββββββββββ ββββββββββ ββββββββββββ βββββββββββββββββββββ
| Requirement | Version | Notes |
|---|---|---|
| JDK | 11+ | LTS recommended |
| Maven | 3.6+ | For building from source |
| HugeGraph Server | 1.5.0+ | Required for client/loader |
| I want to... | Use This | Get Started |
|---|---|---|
| Visualize graphs via Web UI | Hubble | Docker: docker run -p 8088:8088 hugegraph/hugegraph-hubble |
| Load CSV/JSON data into graph | Loader | CLI with JSON mapping config (docs) |
| Build a Java app with HugeGraph | Client | Maven dependency (example) |
| Backup/restore graphs | Tools | CLI commands (docs) |
| Process graphs with Spark | Spark Connector | DataFrame API (module) |
# Hubble Web UI (port 8088)
docker run -d -p 8088:8088 --name hubble hugegraph/hugegraph-hubble
# Loader (batch data import)
docker run --rm hugegraph/hugegraph-loader ./bin/hugegraph-loader.sh -f example.jsonPurpose: Official Java SDK for HugeGraph Server
Key Features:
- Schema management (PropertyKey, VertexLabel, EdgeLabel, IndexLabel)
- Graph operations (CRUD vertices/edges)
- Gremlin query execution
- Built-in traversers (shortest path, k-neighbor, k-out, paths, etc.)
- Multi-graph and authentication support
Entry Point: org.apache.hugegraph.driver.HugeClient
Quick Example:
HugeClient client = HugeClient.builder("http://localhost:8080", "hugegraph").build();
// Schema management
client.schema().propertyKey("name").asText().ifNotExist().create();
client.schema().vertexLabel("person")
.properties("name")
.ifNotExist()
.create();
// Graph operations
Vertex vertex = client.graph().addVertex(T.label, "person", "name", "Alice");π Documentation | π Source
hugegraph-client-go (Go SDK - WIP)
Purpose: Official Go SDK for HugeGraph Server
Key Features:
- RESTful API client for HugeGraph
- Schema and graph operations
- Gremlin query support
- Idiomatic Go interface
Entry Point: github.com/apache/hugegraph-toolchain/hugegraph-client-go
Quick Example:
import "github.com/apache/hugegraph-toolchain/hugegraph-client-go"
client := hugegraph.NewClient("http://localhost:8080", "hugegraph")
// Schema and graph operationsπ Source
Looking for other languages? See hugegraph-python-client in the hugegraph-ai repository.
Purpose: Batch data import tool from multiple data sources
Key Features:
- Sources: CSV, JSON, HDFS, MySQL, Kafka, existing HugeGraph
- JSON-based mapping configuration
- Parallel loading with configurable threads
- Error handling and retry mechanisms
- Progress tracking and logging
Entry Point: bin/hugegraph-loader.sh
Quick Example:
# Load data from CSV
./bin/hugegraph-loader.sh -f mapping.json -g hugegraph
# Example mapping.json structure
{
"vertices": [
{
"label": "person",
"input": { "type": "file", "path": "persons.csv" },
"mapping": { "name": "name", "age": "age" }
}
]
}π Documentation | π Source
Purpose: Web-based graph management and visualization platform
Key Features:
- Schema management with visual editor
- Data loading interface
- Graph visualization and exploration
- Gremlin query console
- Multi-graph workspace management
- User authentication and authorization
Technology Stack: Spring Boot + React + TypeScript + MobX + Ant Design
Entry Point: bin/start-hubble.sh (default port: 8088)
Quick Start:
cd hugegraph-hubble/apache-hugegraph-hubble-incubating-*/bin
./start-hubble.sh # Background mode
./start-hubble.sh -f # Foreground mode
./stop-hubble.sh # Stop serverπ Documentation | π Source
Purpose: Command-line utilities for graph operations
Key Features:
- Backup and restore graphs
- Graph migration
- Graph cloning
- Metadata management
- Batch operations
Entry Point: bin/hugegraph CLI commands
Quick Example:
# Backup graph
bin/hugegraph backup -t all -d ./backup
# Restore graph
bin/hugegraph restore -t all -d ./backupπ Source
Purpose: Spark integration for reading and writing HugeGraph data
Key Features:
- Read HugeGraph vertices/edges as Spark DataFrames
- Write DataFrames to HugeGraph
- Spark SQL support
- Distributed graph processing
Entry Point: Scala API with Spark DataSource v2
Quick Example:
// Read vertices as DataFrame
val vertices = spark.read
.format("hugegraph")
.option("host", "localhost:8080")
.option("graph", "hugegraph")
.option("type", "vertex")
.load()
// Write DataFrame to HugeGraph
df.write
.format("hugegraph")
.option("host", "localhost:8080")
.option("graph", "hugegraph")
.save()π Source
<!-- Note: Use the latest release version in Maven Central -->
<dependency>
<groupId>org.apache.hugegraph</groupId>
<artifactId>hugegraph-client</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>org.apache.hugegraph</groupId>
<artifactId>hugegraph-loader</artifactId>
<version>1.7.0</version>
</dependency>Check Maven Central for the latest versions.
mvn clean install -DskipTests -Dmaven.javadoc.skip=true -ntp| Module | Build Command |
|---|---|
| Client | mvn -e compile -pl hugegraph-client -Dmaven.javadoc.skip=true -ntp |
| Loader | mvn install -pl hugegraph-client,hugegraph-loader -am -DskipTests -ntp |
| Hubble | mvn install -pl hugegraph-client,hugegraph-loader -am -DskipTests -ntp && cd hugegraph-hubble && mvn package -DskipTests -ntp |
| Tools | mvn install -pl hugegraph-client,hugegraph-tools -am -DskipTests -ntp |
| Spark | mvn install -pl hugegraph-client,hugegraph-spark-connector -am -DskipTests -ntp |
| Go Client | cd hugegraph-client-go && make all |
| Module | Test Type | Command |
|---|---|---|
| Client | Unit (no server) | mvn test -pl hugegraph-client -Dtest=UnitTestSuite |
| Client | API (server needed) | mvn test -pl hugegraph-client -Dtest=ApiTestSuite |
| Client | Functional | mvn test -pl hugegraph-client -Dtest=FuncTestSuite |
| Loader | Unit | mvn test -pl hugegraph-loader -P unit |
| Loader | File sources | mvn test -pl hugegraph-loader -P file |
| Loader | HDFS | mvn test -pl hugegraph-loader -P hdfs |
| Loader | JDBC | mvn test -pl hugegraph-loader -P jdbc |
| Loader | Kafka | mvn test -pl hugegraph-loader -P kafka |
| Hubble | Unit | mvn test -P unit-test -pl hugegraph-hubble/hubble-be |
| Tools | Functional | mvn test -pl hugegraph-tools -Dtest=FuncTestSuite |
Checkstyle is enforced via tools/checkstyle.xml:
- Max line length: 100 characters
- 4-space indentation (no tabs)
- No star imports
- No
System.out.println
Run checkstyle:
mvn checkstyle:checkOfficial Docker images are available on Docker Hub:
| Image | Purpose | Port |
|---|---|---|
hugegraph/hugegraph-hubble |
Web UI | 8088 |
hugegraph/hugegraph-loader |
Data loader | - |
Examples:
# Hubble
docker run -d -p 8088:8088 --name hubble hugegraph/hugegraph-hubble
# Loader (mount config and data)
docker run --rm \
-v /path/to/config:/config \
-v /path/to/data:/data \
hugegraph/hugegraph-loader \
./bin/hugegraph-loader.sh -f /config/mapping.jsonBuild images locally:
# Loader
cd hugegraph-loader && docker build -t hugegraph/hugegraph-loader:latest .
# Hubble
cd hugegraph-hubble && docker build -t hugegraph/hugegraph-hubble:latest .- HugeGraph Toolchain Overview
- hugegraph-client Guide
- hugegraph-loader Guide
- hugegraph-hubble Guide
- API Reference
Welcome to contribute to HugeGraph! Please see How to Contribute for more information.
Note: It's recommended to use GitHub Desktop to simplify the PR and commit process.
Thank you to all the people who already contributed to HugeGraph!
- GitHub Issues - Report bugs and request features
- Email: [email protected] (subscriber only)
- Slack: ASF Channel
- WeChat: Apache HugeGraph (scan QR code below)
hugegraph-toolchain is licensed under Apache 2.0 License.
