The following tables summarize the features available in the various official GraphAr libraries.
All libraries currently follow version 1.0.0 of the GraphAr format.
Data Types
Data type (primitive) | C++ | Java | Scala | Python |
---|
Boolean | ✓ | ✓ | ✓ | ✓ |
Int32 | ✓ | ✓ | ✓ | ✓ |
Int64 | ✓ | ✓ | ✓ | ✓ |
Float | ✓ | ✓ | ✓ | ✓ |
Double | ✓ | ✓ | ✓ | ✓ |
String | ✓ | ✓ | ✓ | ✓ |
Date | ✓ | | | |
Timestamp | ✓ | | | |
Time | | | | |
Data type (nested) | C++ | Java | Scala | Python |
---|
List (*) | ✓ | | | |
- (*) The data type of List is not supported by the CSV payload file format.
Format | C++ | Java | Scala | Python |
---|
CSV | R/W | R (1) | R/W | R/W (2) |
ORC | R/W | R (1) | R/W | R/W (2) |
Parquet | R/W | R (1) | R/W | R/W (2) |
Avro | | | | |
HDF5 | | | | |
JSON | | | | |
- R - Read supported
- W - Write supported
Supported compression methods for the file formats:
Compression | C++ | Java | Scala | Python |
---|
ZSTD (*) | ✓ | ✓ | ✓ | ✓ |
- (*) Compression is not supported by the CSV payload file format.
Property
Property feature | C++ | Java | Scala | Python |
---|
primary key | ✓ | ✓ | ✓ | ✓ |
nullable | ✓ | | ✓ | ✓ |
Supported operations in Property:
Property operation | C++ | Java | Scala | Python |
---|
create | ✓ | ✓ (1) | ✓ | ✓ (2) |
get_name | ✓ | ✓ (1) | ✓ | ✓ (2) |
is_primary_key | ✓ | ✓ (1) | ✓ | ✓ (2) |
is_nullable | ✓ | | ✓ | ✓ (2) |
Property Group
Property Group (operation) | C++ | Java (1) | Scala | Python (2) |
---|
create | ✓ | ✓ | ✓ | ✓ |
add property | ✓ | ✓ | ✓ | ✓ |
remove property | | | | |
get properties | ✓ | ✓ | ✓ | ✓ |
check property | ✓ | ✓ | | |
get file type | ✓ | ✓ | ✓ | ✓ |
get path prefix | ✓ | ✓ | ✓ | ✓ |
check validation | ✓ | | | |
Adjacency List
Adjacency List (type) | C++ | Java | Scala | Python |
---|
CSR | ✓ | ✓ | ✓ | ✓ |
CSC | ✓ | ✓ | ✓ | ✓ |
COO | ✓ | ✓ | ✓ | ✓ |
Supported operations in Adjacency List:
Adjacency List (operation) | C++ | Java (1) | Scala | Python (2) |
---|
create | ✓ | | ✓ | ✓ |
get adjacency type | ✓ | | ✓ | ✓ |
get file type | ✓ | | ✓ | ✓ |
get path prefix | ✓ | | ✓ | ✓ |
check validation | ✓ | | | |
Vertex
Vertex features:
Vertex feature | C++ | Java | Scala | Python |
---|
label | ✓ | ✓ | ✓ | ✓ |
tag | | | | |
chunk based | ✓ | ✓ | ✓ | ✓ |
property group | ✓ | ✓ | ✓ | ✓ |
- label is the vertex label, which is a unique identifier for the vertex.
- tag is the vertex tag, which is tag or category for the vertex.
Supported operations in Vertex Info:
Vertex Info (operation) | C++ | Java (1) | Scala | Python (2) |
---|
create | ✓ | ✓ | ✓ | ✓ |
add group | ✓ | ✓ | ✓ | ✓ |
remove group | | | | |
get label | ✓ | ✓ | ✓ | ✓ |
get chunk size | ✓ | ✓ | ✓ | ✓ |
get groups | ✓ | ✓ | ✓ | ✓ |
get path prefix | ✓ | ✓ | ✓ | ✓ |
check property | ✓ | ✓ | |