diff --git a/.serena/project.yml b/.serena/project.yml index bd75e5b35..7cea692f2 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 000000000..08424532b --- /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 8833165e7..3395177fd 100644 --- a/README.md +++ b/README.md @@ -8,74 +8,437 @@ [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.hugegraph/hugegraph-client/badge.svg)](https://mvnrepository.com/artifact/org.apache.hugegraph/hugegraph-client) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](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
(Placement Driver)"] + STORE["hugegraph-store
(Storage Nodes)"] + end + + subgraph clients ["Client SDKs"] + CLIENT["hugegraph-client
(Java)"] + end + + subgraph data ["Data Tools"] + LOADER["hugegraph-loader
(Batch Import)"] + SPARK["hugegraph-spark-connector
(Spark I/O)"] + end + + subgraph mgmt ["Management Tools"] + HUBBLE["hugegraph-hubble
(Web UI)"] + TOOLS["hugegraph-tools
(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
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) │ +└────────┘ └────────┘ └──────────┘ └───────────────────┘ +``` +
+ +## 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 + +
+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**: +```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) + +
+ +> **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 - - - org.apache.hugegraph - hugegraph-client - 1.5.0 - - - - org.apache.hugegraph - hugegraph-loader - 1.5.0 - + + + org.apache.hugegraph + hugegraph-client + 1.7.0 + + + + org.apache.hugegraph + hugegraph-loader + 1.7.0 + ``` -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! [![contributors graph](https://contrib.rocks/image?repo=apache/hugegraph-toolchain)](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: [dev@hugegraph.apache.org](mailto:dev@hugegraph.apache.org) ([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: [dev@hugegraph.apache.org](mailto:dev@hugegraph.apache.org) ([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. +WeChat QR code - QR png +## License +hugegraph-toolchain is licensed under [Apache 2.0 License](https://github.com/apache/hugegraph-toolchain/blob/master/LICENSE).