This is an automated email from the ASF dual-hosted git repository.
jin pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/incubator-hugegraph-toolchain.git
The following commit(s) were added to refs/heads/master by this push:
new 49fa7180 doc: add AGENTS.md, update README and project config (#711)
49fa7180 is described below
commit 49fa7180496fa126d3fa848094d316a546dbb689
Author: imbajin <[email protected]>
AuthorDate: Sun Feb 1 20:14:25 2026 +0800
doc: add AGENTS.md, update README and project config (#711)
* doc: add AGENTS.md, update README and project config
Add AGENTS.md with guidance for AI coding assistants and repository
build/run commands. Expand and reorganize README: add architecture diagrams,
detailed module overviews, quick start, Docker examples, build/test commands,
and bump example dependency versions to 1.7.0. Update .serena/project.yml to
include project_name and placeholder settings for included tools, modes, and
fixed_tools to better configure Serena project metadata.
* Update README.md
* Update README.md
* Disable Serena modes; tweak Maven commands
Set base_modes and default_modes to empty lists in .serena/project.yml to
disable project-level base/default modes. Update README Maven invocation: add
-e to the client compile for extended error output and add -ntp to
Hubble-related mvn commands to suppress transfer progress and align flags
across examples.
---
.serena/project.yml | 23 ++-
AGENTS.md | 157 ++++++++++++++++++
README.md | 455 ++++++++++++++++++++++++++++++++++++++++++++++------
3 files changed, 588 insertions(+), 47 deletions(-)
diff --git a/.serena/project.yml b/.serena/project.yml
index bd75e5b3..7cea692f 100644
--- a/.serena/project.yml
+++ b/.serena/project.yml
@@ -79,6 +79,27 @@ excluded_tools: []
# initial prompt for the project. It will always be given to the LLM upon
activating the project
# (contrary to the memories, which are loaded on demand).
initial_prompt: ""
-
+# the name by which the project can be referenced within Serena
project_name: "toolchain"
+
+# list of tools to include that would otherwise be disabled (particularly
optional tools that are disabled by default)
included_optional_tools: []
+
+# list of mode names to that are always to be included in the set of active
modes
+# The full set of modes to be activated is base_modes + default_modes.
+# If the setting is undefined, the base_modes from the global configuration
(serena_config.yml) apply.
+# Otherwise, this setting overrides the global configuration.
+# Set this to [] to disable base modes for this project.
+# Set this to a list of mode names to always include the respective modes for
this project.
+base_modes: []
+
+# list of mode names that are to be activated by default.
+# The full set of modes to be activated is base_modes + default_modes.
+# If the setting is undefined, the default_modes from the global configuration
(serena_config.yml) apply.
+# Otherwise, this overrides the setting from the global configuration
(serena_config.yml).
+# This setting can, in turn, be overridden by CLI parameters (--mode).
+default_modes: []
+
+# fixed set of tools to use as the base tool set (if non-empty), replacing
Serena's default set of tools.
+# This cannot be combined with non-empty excluded_tools or
included_optional_tools.
+fixed_tools: []
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 00000000..08424532
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,157 @@
+# AGENTS.md
+
+This file provides guidance to AI coding assistants (Claude Code, Cursor,
GitHub Copilot, etc.) when working with code in this repository.
+
+## Project Overview
+
+Apache HugeGraph Toolchain - a multi-module Maven project providing utilities
for the HugeGraph graph database. Current version: 1.7.0.
+
+## Build Commands
+
+### Full Build
+```bash
+mvn clean install -DskipTests -Dmaven.javadoc.skip=true -ntp
+```
+
+### Module-Specific Builds
+
+**Java Client:**
+```bash
+mvn -e compile -pl hugegraph-client -Dmaven.javadoc.skip=true -ntp
+```
+
+**Loader (requires client):**
+```bash
+mvn install -pl hugegraph-client,hugegraph-loader -am -DskipTests -ntp
+```
+
+**Hubble (requires client + loader):**
+```bash
+mvn install -pl hugegraph-client,hugegraph-loader -am -DskipTests -ntp
+cd hugegraph-hubble && mvn package -DskipTests -ntp
+```
+
+**Tools:**
+```bash
+mvn install -pl hugegraph-client,hugegraph-tools -am -DskipTests -ntp
+```
+
+**Spark Connector:**
+```bash
+mvn install -pl hugegraph-client,hugegraph-spark-connector -am -DskipTests -ntp
+```
+
+**Go Client:**
+```bash
+cd hugegraph-client-go && make all
+```
+
+## Testing
+
+### Client Tests
+```bash
+cd hugegraph-client
+mvn test -Dtest=UnitTestSuite # Unit tests (no server required)
+mvn test -Dtest=ApiTestSuite # API tests (requires HugeGraph server)
+mvn test -Dtest=FuncTestSuite # Functional tests (requires HugeGraph
server)
+```
+
+### Loader Tests (profiles)
+```bash
+cd hugegraph-loader
+mvn test -P unit # Unit tests
+mvn test -P file # File source tests
+mvn test -P hdfs # HDFS tests (requires Hadoop)
+mvn test -P jdbc # JDBC tests (requires MySQL)
+mvn test -P kafka # Kafka tests
+```
+
+### Hubble Tests
+```bash
+mvn test -P unit-test -pl hugegraph-hubble/hubble-be -ntp
+```
+
+### Tools Tests
+```bash
+mvn test -Dtest=FuncTestSuite -pl hugegraph-tools -ntp
+```
+
+## Code Style
+
+Checkstyle enforced via `tools/checkstyle.xml`:
+- Max line length: 100 characters
+- 4-space indentation (no tabs)
+- No star imports
+- No `System.out.println`
+
+Run checkstyle:
+```bash
+mvn checkstyle:check
+```
+
+## Architecture
+
+### Module Dependencies
+```
+hugegraph-loader, hugegraph-tools, hugegraph-hubble, hugegraph-spark-connector
+ ↓
+ hugegraph-client
+ ↓
+ hugegraph-common (external)
+```
+
+### Key Patterns
+
+**hugegraph-client** - Manager/Facade pattern:
+- `HugeClient` is the entry point providing access to specialized managers
+- `SchemaManager`, `GraphManager`, `GremlinManager`, `TraverserManager`, etc.
+- Builder pattern for fluent schema creation
+
+**hugegraph-loader** - Pipeline with Factory pattern:
+- `InputSource` interface with implementations: `FileSource`, `HDFSSource`,
`JDBCSource`, `KafkaSource`, `GraphSource`
+- `InputReader.create()` factory method creates appropriate reader for source
type
+
+**hugegraph-hubble** - Spring Boot MVC:
+- Backend: `controller/` → `service/` → `mapper/` layers
+- Frontend: React + TypeScript + MobX + Ant Design
+- H2 database for metadata storage
+
+**hugegraph-tools** - Command pattern:
+- Manager classes for operations: `BackupManager`, `RestoreManager`,
`GraphsManager`
+
+### Key Directories
+
+| Module | Main Code | Package |
+|--------|-----------|---------|
+| client | `hugegraph-client/src/main/java` | `org.apache.hugegraph` |
+| loader | `hugegraph-loader/src/main/java` | `org.apache.hugegraph.loader` |
+| hubble-be | `hugegraph-hubble/hubble-be/src/main/java` |
`org.apache.hugegraph` |
+| hubble-fe | `hugegraph-hubble/hubble-fe/src` | React/TypeScript |
+| tools | `hugegraph-tools/src/main/java` | `org.apache.hugegraph` |
+| spark | `hugegraph-spark-connector/src/main/scala` |
`org.apache.hugegraph.spark` |
+
+## Running Applications
+
+### Hubble (Web UI on port 8088)
+```bash
+cd hugegraph-hubble/apache-hugegraph-hubble-incubating-*/bin
+./start-hubble.sh # Background
+./start-hubble.sh -f # Foreground
+./stop-hubble.sh # Stop
+```
+
+### Loader
+```bash
+cd hugegraph-loader/apache-hugegraph-loader-incubating-*
+./bin/hugegraph-loader.sh [options]
+```
+
+## Docker
+
+```bash
+# Loader
+cd hugegraph-loader && docker build -t hugegraph/hugegraph-loader:latest .
+
+# Hubble
+cd hugegraph-hubble && docker build -t hugegraph/hugegraph-hubble:latest .
+```
diff --git a/README.md b/README.md
index 8833165e..3395177f 100644
--- a/README.md
+++ b/README.md
@@ -8,74 +8,437 @@
[](https://mvnrepository.com/artifact/org.apache.hugegraph/hugegraph-client)
[](https://deepwiki.com/apache/hugegraph-toolchain)
-`hugegraph-toolchain` is the integration project contains a series of
utilities for [HugeGraph](https://github.com/apache/hugegraph),
-it includes 5+ main modules.
+## What is HugeGraph Toolchain?
-## Modules
+A comprehensive suite of client SDKs, data tools, and management utilities for
[Apache HugeGraph](https://github.com/apache/hugegraph) graph database. Build
applications, load data, and manage graphs with production-ready tools.
-- [hugegraph-loader](./hugegraph-loader): Loading datasets into the HugeGraph
from multiple data sources.
-- [hugegraph-hubble](./hugegraph-hubble): Online HugeGraph management and
analysis dashboard (Include: data loading, schema management, graph traverser
and display).
-- [hugegraph-tools](./hugegraph-tools): Command line tool for deploying,
managing and backing-up/restoring graphs from HugeGraph.
-- [hugegraph-client](./hugegraph-client): A Java-written client for HugeGraph,
providing `RESTful` APIs for accessing graph
vertex/edge/schema/gremlin/variables and traversals etc.
-- [hugegraph-client-go](./hugegraph-client-go): A Go-written client for
HugeGraph, providing `RESTful` APIs for accessing graph
vertex/edge/schema/gremlin/variables and traversals etc. (WIP)
-- [hugegraph-spark-connector](./hugegraph-spark-connector): A Spark connector
for reading & writing HugeGraph data in Spark standard format.
+**Quick Navigation**: [Architecture](#architecture-overview) | [Quick
Start](#quick-start) | [Modules](#module-overview) |
[Build](#build--development) | [Docker](#docker) | [Related
Projects](#related-projects)
-## Usage
+## Related Projects
-- [hugegraph-loader](./hugegraph-loader): We can follow the
[doc](https://hugegraph.apache.org/docs/quickstart/hugegraph-loader/) to learn
how to quickly start with `loader`.
-- [hugegraph-hubble](./hugegraph-hubble): We can follow the
[doc](https://hugegraph.apache.org/docs/quickstart/hugegraph-hubble/) to learn
how to quickly start with `hubble`.
-- [hugegraph-client](./hugegraph-client): We can follow the
[doc](https://hugegraph.apache.org/docs/quickstart/hugegraph-client/) to learn
how to quickly start with `client`.
+**HugeGraph Ecosystem**:
+1. [hugegraph](https://github.com/apache/hugegraph) - Core graph database
(**[pd](https://github.com/apache/hugegraph/tree/master/hugegraph-pd)** /
**[store](https://github.com/apache/hugegraph/tree/master/hugegraph-store)** /
**[server](https://github.com/apache/hugegraph/tree/master/hugegraph-server)**
/
**[commons](https://github.com/apache/hugegraph/tree/master/hugegraph-commons)**)
+2. [hugegraph-computer](https://github.com/apache/hugegraph-computer) -
Distributed graph computing system
+3. [hugegraph-ai](https://github.com/apache/incubator-hugegraph-ai) - Graph
AI/LLM/Knowledge Graph integration
+4. [hugegraph-website](https://github.com/apache/hugegraph-doc) -
Documentation and website
-## Maven Dependencies
+## Architecture Overview
+
+```mermaid
+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
+```
+
+<details>
+<summary>ASCII diagram (for terminals/editors)</summary>
+
+```
+ ┌─────────────────────────┐
+ │ 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) │
+└────────┘ └────────┘ └──────────┘ └───────────────────┘
+```
+</details>
+
+## Quick Start
+
+### Prerequisites
+
+| Requirement | Version | Notes |
+|-------------|---------|-------|
+| JDK | 11+ | LTS recommended |
+| Maven | 3.6+ | For building from source |
+| HugeGraph Server | 1.5.0+ | Required for client/loader |
+
+### Choose Your Path
+
+| 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](https://hugegraph.apache.org/docs/quickstart/hugegraph-loader/)) |
+| Build a Java app with HugeGraph | Client | Maven dependency
([example](#hugegraph-client)) |
+| Backup/restore graphs | Tools | CLI commands
([docs](https://hugegraph.apache.org/docs/quickstart/hugegraph-tools/)) |
+| Process graphs with Spark | Spark Connector | DataFrame API
([module](#hugegraph-spark-connector)) |
+
+### Docker Quick Start
+
+```bash
+# 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.json
+```
+
+## Module Overview
+
+### hugegraph-client
+
+**Purpose**: 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**:
+```java
+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](https://hugegraph.apache.org/docs/quickstart/hugegraph-client/)
| 📁 [Source](./hugegraph-client)
+
+---
+
+### Other Client SDKs
+
+<details>
+<summary><b>hugegraph-client-go</b> (Go SDK - WIP)</summary>
+
+**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**:
+```go
+import "github.com/apache/hugegraph-toolchain/hugegraph-client-go"
+
+client := hugegraph.NewClient("http://localhost:8080", "hugegraph")
+// Schema and graph operations
+```
+
+📁 [Source](./hugegraph-client-go)
+
+</details>
+
+> **Looking for other languages?** See
[hugegraph-python-client](https://github.com/apache/incubator-hugegraph-ai/tree/main/hugegraph-python-client)
in the hugegraph-ai repository.
+
+---
+
+### hugegraph-loader
+
+**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**:
+```bash
+# 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" }
+ }
+ ]
+}
+```
-You could use import the dependencies in `maven` like this:
+📖
[Documentation](https://hugegraph.apache.org/docs/quickstart/hugegraph-loader/)
| 📁 [Source](./hugegraph-loader)
+
+---
+
+### hugegraph-hubble
+
+**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**:
+```bash
+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](https://hugegraph.apache.org/docs/quickstart/hugegraph-hubble/)
| 📁 [Source](./hugegraph-hubble)
+
+---
+
+### hugegraph-tools
+
+**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**:
+```bash
+# Backup graph
+bin/hugegraph backup -t all -d ./backup
+
+# Restore graph
+bin/hugegraph restore -t all -d ./backup
+```
+
+📁 [Source](./hugegraph-tools)
+
+---
+
+### hugegraph-spark-connector
+
+**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**:
+```scala
+// 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](./hugegraph-spark-connector)
+
+## Maven Dependencies
```xml
- <!-- Note: use the latest release version in maven repo, here is just an
example -->
- <dependency>
- <groupId>org.apache.hugegraph</groupId>
- <artifactId>hugegraph-client</artifactId>
- <version>1.5.0</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.hugegraph</groupId>
- <artifactId>hugegraph-loader</artifactId>
- <version>1.5.0</version>
- </dependency>
+<!-- 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>
```
-And here are links of other **HugeGraph** component/repositories:
-1. [hugegraph](https://github.com/apache/hugegraph)
(**[pd](https://github.com/apache/hugegraph/tree/master/hugegraph-pd)/[store](https://github.com/apache/hugegraph/tree/master/hugegraph-store)/[server](https://github.com/apache/hugegraph/tree/master/hugegraph-server)/[commons](https://github.com/apache/hugegraph/tree/master/hugegraph-commons)**)
-2. [hugegraph-computer](https://github.com/apache/hugegraph-computer)
(integrated **graph computing** system)
-3. [hugegraph-ai](https://github.com/apache/incubator-hugegraph-ai)
(integrated **Graph AI/LLM/KG** system)
-4. [hugegraph-website](https://github.com/apache/hugegraph-doc) (**doc &
website** code)
+Check [Maven Central](https://mvnrepository.com/artifact/org.apache.hugegraph)
for the latest versions.
+## Build & Development
-## Doc
+### Full Build
-The [project homepage](https://hugegraph.apache.org/docs/quickstart/) contains
more information about `hugegraph-toolchain`.
+```bash
+mvn clean install -DskipTests -Dmaven.javadoc.skip=true -ntp
+```
-## License
+### Module-Specific Builds
+
+| 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` |
+
+### Running Tests
+
+| 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` |
+
+### Code Style
+
+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:
+```bash
+mvn checkstyle:check
+```
-hugegraph-toolchain is licensed under [Apache
2.0](https://github.com/apache/hugegraph-toolchain/blob/master/LICENSE) License.
+## Docker
+
+Official Docker images are available on Docker Hub:
+
+| Image | Purpose | Port |
+|-------|---------|------|
+| `hugegraph/hugegraph-hubble` | Web UI | 8088 |
+| `hugegraph/hugegraph-loader` | Data loader | - |
+
+**Examples**:
+```bash
+# 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.json
+```
+
+Build images locally:
+```bash
+# Loader
+cd hugegraph-loader && docker build -t hugegraph/hugegraph-loader:latest .
+
+# Hubble
+cd hugegraph-hubble && docker build -t hugegraph/hugegraph-hubble:latest .
+```
+
+## Documentation
+
+- [HugeGraph Toolchain Overview](https://hugegraph.apache.org/docs/quickstart/)
+- [hugegraph-client
Guide](https://hugegraph.apache.org/docs/quickstart/hugegraph-client/)
+- [hugegraph-loader
Guide](https://hugegraph.apache.org/docs/quickstart/hugegraph-loader/)
+- [hugegraph-hubble
Guide](https://hugegraph.apache.org/docs/quickstart/hugegraph-hubble/)
+- [API Reference](https://hugegraph.apache.org/docs/)
## Contributing
-- Welcome to contribute to HugeGraph, please see [How to
Contribute](https://hugegraph.apache.org/docs/contribution-guidelines/contribute/)
for more information.
-- Note: It's recommended to use [GitHub Desktop](https://desktop.github.com/)
to greatly simplify the PR and commit process.
-- Thank you to all the people who already contributed to HugeGraph!
+Welcome to contribute to HugeGraph! Please see [How to
Contribute](https://hugegraph.apache.org/docs/contribution-guidelines/contribute/)
for more information.
+
+**Note**: It's recommended to use [GitHub
Desktop](https://desktop.github.com/) to simplify the PR and commit process.
+
+Thank you to all the people who already contributed to HugeGraph!
[](https://github.com/apache/hugegraph-toolchain/graphs/contributors)
-### Contact Us
+## Community & Contact
----
+- [GitHub Issues](https://github.com/apache/hugegraph-toolchain/issues) -
Report bugs and request features
+- Email: [[email protected]](mailto:[email protected])
([subscriber](https://hugegraph.apache.org/docs/contribution-guidelines/subscribe/)
only)
+- Slack: [ASF Channel](https://the-asf.slack.com/archives/C059UU2FJ23)
+- WeChat: Apache HugeGraph (scan QR code below)
- - [GitHub Issues](https://github.com/apache/hugegraph-toolchain/issues):
Feedback on usage issues and functional requirements (quick response)
- - Feedback Email:
[[email protected]](mailto:[email protected])
([subscriber](https://hugegraph.apache.org/docs/contribution-guidelines/subscribe/)
only)
- - Slack: [ASF Online Channel](https://the-asf.slack.com/archives/C059UU2FJ23)
- - WeChat public account: Apache HugeGraph, welcome to scan this QR code to
follow us.
+<img
src="https://raw.githubusercontent.com/apache/hugegraph-doc/master/assets/images/wechat.png"
alt="WeChat QR code" width="350"/>
- <img
src="https://raw.githubusercontent.com/apache/hugegraph-doc/master/assets/images/wechat.png"
alt="QR png" width="350"/>
+## License
+hugegraph-toolchain is licensed under [Apache 2.0
License](https://github.com/apache/hugegraph-toolchain/blob/master/LICENSE).