Quick Navigation: Architecture • Quick Start • Module Map • Ecosystem • For Contributors • Community
HugeGraph is a fast and highly-scalable graph database. Billions of vertices and edges can be easily stored into and queried from HugeGraph due to its excellent OLTP capabilities. HugeGraph is compliant with the Apache TinkerPop 3 framework allowing complicated graph queries to be achieved through the powerful Gremlin graph traversal language.
RocksDB/HStore + HBase; other backends available in legacy versions ≤ 1.5.0 (MySQL/PostgreSQL/Cassandra...)Flink/Spark/HDFSComplete HugeGraph ecosystem components:
hugegraph-toolchain - Graph tools suite
hugegraph-computer - Integrated graph computing system
hugegraph-ai - Graph AI/LLM/Knowledge Graph integration
hugegraph-website - Documentation & website repository
HugeGraph supports both standalone and distributed deployments:
┌─────────────────────────────────────────────────────┐
│ Client Layer │
│ Gremlin Console │ REST API │ Cypher │ SDK/Tools │
└─────────────────────────┬───────────────────────────┘
│
┌─────────────────────────▼───────────────────────────┐
│ HugeGraph Server (:8080) │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ REST API │ │ Gremlin │ │ Cypher Engine │ │
│ │(Jersey 3)│ │ (TP 3.5) │ │ (OpenCypher) │ │
│ └────┬─────┘ └────┬─────┘ └────────┬─────────┘ │
│ └─────────────┼─────────────────┘ │
│ ┌────────▼────────┐ │
│ │ Graph Engine │ │
│ │(hugegraph-core) │ │
│ └────────┬────────┘ │
└─────────────────────┼───────────────────────────────┘
│
┌────────────────────────────────┼────────────────────────────────┐
│ │ │
┌────────────▼────────────┐ ┌───────────────▼───────────────┐ ┌───────────▼──────────┐
│ Standalone Mode │ │ Distributed Mode │ │ Legacy Backends │
│ ┌───────────────────┐ │ │ ┌─────────────────────────┐ │ │ (≤v1.5) │
│ │ RocksDB │ │ │ │ HugeGraph-PD │ │ │ MySQL │ PostgreSQL │
│ │ (embedded) │ │ │ │ (Raft, 3-5 nodes) │ │ │ Cassandra │
│ └───────────────────┘ │ │ │ :8620/:8686 │ │ │ HBase (≤v1.7) │
│ │ │ └────────────┬────────────┘ │ └──────────────────────┘
│ Use Case: │ │ │ │
│ Development/Testing │ │ ┌────────────▼────────────┐ │
│ Single Node │ │ │ HugeGraph-Store │ │
│ │ │ │ (Raft + RocksDB) │ │
│ Data Scale: < 1TB │ │ │ (3+ nodes) :8520 │ │
└─────────────────────────┘ │ └─────────────────────────┘ │
│ │
│ Use Case: │
│ Production/HA/Cluster │
│ │
│ Data Scale: < 1000 TB │
└───────────────────────────────┘
| Mode | Components | Use Case | Data Scale | High Availability |
|---|---|---|---|---|
| Standalone | Server + RocksDB | Development, Testing, Single Node | < 1TB | Basic |
| Distributed | Server + PD (3-5 nodes) + Store (3+ nodes) | Production, HA, Horizontal Scaling | < 1000 TB | Yes |
| Module | Description |
|---|---|
| hugegraph-server | Core graph engine with REST API, Gremlin/Cypher support, and pluggable backends (RocksDB default) |
| hugegraph-pd | Placement Driver for distributed mode - handles meta storage, partition management and cluster scheduling |
| hugegraph-store | Distributed storage with Raft consensus for high availability and horizontal scaling |
| hugegraph-commons | Shared utilities, RPC framework and common components |
flowchart TB subgraph Clients["Client Layer"] GC[Gremlin Console] REST[REST Client] CYPHER[Cypher Client] SDK[SDK/Tools] end subgraph Server["HugeGraph Server :8080"] API[REST API<br/>Jersey 3] GS[Gremlin Server<br/>TinkerPop 3.5] CS[Cypher Engine<br/>OpenCypher] CORE[Graph Engine<br/>hugegraph-core] API --> CORE GS --> CORE CS --> CORE end subgraph Storage["Storage Layer"] subgraph Standalone["Standalone Mode"] ROCKS[(RocksDB<br/>Embedded)] end subgraph Distributed["Distributed Mode"] PD[HugeGraph-PD<br/>Raft Cluster<br/>:8620/:8686] STORE[HugeGraph-Store<br/>Raft + RocksDB<br/>:8520] PD <--> STORE end subgraph Legacy["Legacy Backends (≤v1.5)"] MYSQL[(MySQL)] PG[(PostgreSQL)] CASS[(Cassandra)] HBASE[(HBase, ≤v1.7)] end end Clients --> Server CORE --> ROCKS CORE --> PD CORE -.-> Legacy style Server fill:#e1f5ff style Distributed fill:#fff4e1 style Standalone fill:#f0f0f0
# Start HugeGraph with Docker docker run -itd --name=hugegraph -p 8080:8080 hugegraph/hugegraph:1.7.0 # Verify server is running curl http://localhost:8080/apis/version # Try a Gremlin query curl -X POST http://localhost:8080/gremlin \ -H "Content-Type: application/json" \ -d '{"gremlin":"g.V().limit(5)"}'
Production Note: For production environments or public network exposure, you must enable the AuthSystem for security.
Docker is the quickest way to get started for testing or development:
# Basic usage docker run -itd --name=hugegraph -p 8080:8080 hugegraph/hugegraph:1.7.0 # With sample graph preloaded docker run -itd --name=hugegraph -e PRELOAD=true -p 8080:8080 hugegraph/hugegraph:1.7.0 # With authentication enabled docker run -itd --name=hugegraph -e PASSWORD=your_password -p 8080:8080 hugegraph/hugegraph:1.7.0
For advanced Docker configurations, see:
Note: Docker images are convenience releases, not official ASF distribution artifacts. See ASF Release Distribution Policy for details.
Version Tags: Use release tags (
1.7.0,1.x.0) for stable versions. Uselatestfor development features.
Download pre-built packages from the Download Page:
# Download and extract wget https://downloads.apache.org/incubator/hugegraph/{version}/apache-hugegraph-incubating-{version}.tar.gz tar -xzf apache-hugegraph-incubating-{version}.tar.gz cd apache-hugegraph-incubating-{version} # Initialize backend storage bin/init-store.sh # Start server bin/start-hugegraph.sh # Check server status bin/monitor-hugegraph.sh
For detailed instructions, see the Binary Installation Guide.
Build from source for development or customization:
# Clone repository git clone https://github.com/apache/hugegraph.git cd hugegraph # Build all modules (skip tests for faster build) mvn clean package -DskipTests # Extract built package cd install-dist/target tar -xzf hugegraph-{version}.tar.gz cd hugegraph-{version} # Initialize and start bin/init-store.sh bin/start-hugegraph.sh
For detailed build instructions, see BUILDING.md and Build from Source Guide.
Once the server is running, verify the installation:
# Check server version curl http://localhost:8080/apis/version # Expected output: # { # "version": "1.7.0", # "core": "1.7.0", # "gremlin": "3.5.1", # "api": "1.7.0" # } # Try Gremlin console (if installed locally) bin/gremlin-console.sh # In Gremlin console: gremlin> :remote connect tinkerpop.server conf/remote.yaml gremlin> :> g.V().limit(5)
For comprehensive documentation, visit the HugeGraph Documentation.
Developer Navigation: Find the right module for your task
| I want to... | Module | Key Path |
|---|---|---|
| Understand graph operations | hugegraph-core | StandardHugeGraph.java |
| Modify REST APIs | hugegraph-api | src/.../api/ |
| Add storage backend | hugegraph-core | BackendStore.java |
| Develop Gremlin features | hugegraph-core | src/.../traversal/ |
| Develop Cypher features | hugegraph-api | src/.../opencypher/ |
| Work on distributed coordination | hugegraph-pd | hg-pd-core/ |
| Work on distributed storage | hugegraph-store | hg-store-core/ |
| Add backend implementations | hugegraph-server/hugegraph-{backend} | hugegraph-rocksdb/, hugegraph-hstore/ |
| Understand configuration | hugegraph-dist | src/assembly/static/conf/ |
| Run tests | hugegraph-test | Test suites with multiple profiles |
For detailed architecture and development guidance, see AGENTS.md.
New to HugeGraph? Follow this path to get started:
Understand the Architecture
Set Up Your Environment
.editorconfig for code style and style/checkstyle.xml for Checkstyle rulesFind Your First Issue
Learn the Codebase
mvn test -pl hugegraph-server/hugegraph-test -am -P core-test,memoryCode Standards
feat|fix|refactor(module): descriptionSubmit Your Contribution
Welcome to contribute to HugeGraph!
.editorconfig for code style and style/checkstyle.xml for Checkstyle rulesThank you to all the contributors who have helped make HugeGraph better!
HugeGraph is licensed under Apache 2.0 License.
Get Help & Stay Connected
HugeGraph relies on the Apache TinkerPop framework. We are grateful to the TinkerPop community, Titan, and DataStax for their foundational work. Thanks to all contributors and organizations who have helped make HugeGraph possible.
You are welcome to contribute to HugeGraph, and we look forward to working with you to build an excellent open-source community.