The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Introduction to AstraeaDB

What is AstraeaDB?

AstraeaDB is a cloud-native, AI-first graph database written in Rust. It is designed from the ground up for workloads that combine traditional graph analytics with modern vector similarity search and retrieval-augmented generation (RAG). Its core data model is the Vector-Property Graph, which extends the classical property graph with dense vector embeddings and temporal edge validity windows.

Key characteristics of AstraeaDB include:

The Vector-Property Graph Data Model

AstraeaDB organises data into nodes and edges:

Nodes have:

Edges have:

Transport Options

AstraeaDB exposes three network endpoints simultaneously:

Transport Default Port Protocol Best For
JSON/TCP 7687 Line-delimited JSON General CRUD, interactive use
gRPC 7688 Protocol Buffers Service-to-service calls
Arrow Flight 7689 Apache Arrow Flight Bulk queries, analytics

The AstraeaDB R package provides three client classes that map to these transports:

For most users, AstraeaClient or the convenience function astraea_connect() is the recommended starting point.

Key Features at a Glance

The R package exposes the full AstraeaDB feature set:

Installation

From CRAN (when available)

install.packages("AstraeaDB")

Development Version from GitHub

# install.packages("remotes")
remotes::install_github("AstraeaDB/R-AstraeaDB")

Optional: Arrow Flight Support

To enable the high-performance Arrow Flight transport, install the arrow package:

install.packages("arrow")

Prerequisites

Before using the R package, you must have an AstraeaDB server running and accessible on the network. You can start a local development server with:

# From the AstraeaDB source directory
cargo run -p astraea-cli -- serve

By default the server listens on:

You can verify the server is reachable from R before connecting:

library(AstraeaDB)
astraea_server_available()
#> [1] TRUE

Quick Start Example

The following example connects to a local server, creates two nodes and an edge, queries the graph, and then disconnects.

library(AstraeaDB)

# 1. Connect to the server (convenience wrapper)
client <- astraea_connect()

# 2. Health check
client$ping()

# 3. Create nodes
alice_id <- client$create_node(
  labels     = c("Person"),
  properties = list(name = "Alice", age = 30, city = "San Francisco")
)

bob_id <- client$create_node(
  labels     = c("Person"),
  properties = list(name = "Bob", age = 25, city = "New York")
)

# 4. Create an edge
edge_id <- client$create_edge(
  source    = alice_id,
  target    = bob_id,
  edge_type = "KNOWS",
  properties = list(since = 2020),
  weight    = 0.9
)

# 5. Read a node back
node <- client$get_node(alice_id)
node$labels
#> [1] "Person"
node$properties$name
#> [1] "Alice"

# 6. Find neighbors
neighbors <- client$neighbors(alice_id, direction = "outgoing")

# 7. Run a GQL query
result <- client$query("MATCH (p:Person) RETURN p.name, p.city")

# 8. Disconnect when finished
client$disconnect()

Where to Go Next

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.