Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
fc7d585
add java sdk
liulx20 Mar 11, 2026
4898637
add test cases
liulx20 Mar 12, 2026
85ea06b
Update tools/java_driver/USAGE.md
liulx20 Mar 12, 2026
3d8c283
Update tools/java_driver/USAGE.md
liulx20 Mar 12, 2026
91cf384
fix some issues
liulx20 Mar 12, 2026
5ffc5c7
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 12, 2026
0b9da91
Merge branch 'main' into java-sdk
liulx20 Mar 12, 2026
b96bcc8
add ClientTest
liulx20 Mar 12, 2026
f7b7025
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 12, 2026
c988761
update doc
liulx20 Mar 12, 2026
b49ae7f
fix doc
liulx20 Mar 12, 2026
64a2806
Update tools/java_driver/pom.xml
liulx20 Mar 12, 2026
92c7e0d
Update tools/java_driver/src/test/java/org/alibaba/neug/driver/Intern…
liulx20 Mar 12, 2026
5552c80
Merge branch 'main' into java-sdk
liulx20 Mar 12, 2026
dddfe71
format
liulx20 Mar 12, 2026
4d459d9
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 12, 2026
f495c20
rename org to com
liulx20 Mar 12, 2026
9dbdcf0
fix doc
liulx20 Mar 12, 2026
0a03f31
add result metadata
liulx20 Mar 12, 2026
ec3724b
fix
liulx20 Mar 13, 2026
5bbc389
Merge branch 'main' into java-sdk
liulx20 Mar 13, 2026
eab1c90
Potential fix for pull request finding
liulx20 Mar 16, 2026
8140714
add tests
liulx20 Mar 16, 2026
f285e20
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 16, 2026
fed0f48
add doc
liulx20 Mar 16, 2026
9375a99
add maven
liulx20 Mar 16, 2026
e8eeb5d
Update tools/java_driver/src/main/java/com/alibaba/neug/driver/utils/…
liulx20 Mar 16, 2026
b69967c
Update tools/java_driver/src/main/java/com/alibaba/neug/driver/intern…
liulx20 Mar 16, 2026
9362940
add e2e ci
liulx20 Mar 16, 2026
488fbb1
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 16, 2026
9873679
add param test
liulx20 Mar 16, 2026
49fdfd4
format
liulx20 Mar 16, 2026
dbd0477
Merge branch 'main' into java-sdk
liulx20 Mar 16, 2026
d187d05
Update tools/java_driver/src/main/java/com/alibaba/neug/driver/intern…
liulx20 Mar 16, 2026
4f9dec5
Update InternalSession.java
liulx20 Mar 16, 2026
4b61c7f
remove pb generated
liulx20 Mar 16, 2026
2c6cc6e
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 16, 2026
edccbb9
fix doc
liulx20 Mar 16, 2026
97dc68a
fix doc
liulx20 Mar 16, 2026
2c32e46
Merge branch 'main' into java-sdk
liulx20 Mar 17, 2026
74b5c76
fix doc
liulx20 Mar 17, 2026
5cd5af6
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 17, 2026
2d12cac
Merge branch 'main' into java-sdk
liulx20 Mar 17, 2026
94e8ba9
fix workflows
liulx20 Mar 17, 2026
27df47e
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 17, 2026
fccbcf4
fix version
liulx20 Mar 17, 2026
edfaa63
fix generator
liulx20 Mar 17, 2026
3241962
fix maven action
liulx20 Mar 17, 2026
016555a
fix: catch OSError in neug-cli readline history loading on macOS (#75)
longbinlai Mar 17, 2026
82d8330
Update tools/java_driver/src/main/java/com/alibaba/neug/driver/intern…
liulx20 Mar 17, 2026
d914a30
fix getBigDecimal
liulx20 Mar 17, 2026
e3f104f
Update tools/java_driver/src/main/java/com/alibaba/neug/driver/intern…
liulx20 Mar 17, 2026
1c8e76f
Update tools/java_driver/src/main/java/com/alibaba/neug/driver/intern…
liulx20 Mar 17, 2026
972c487
fix getObject
liulx20 Mar 17, 2026
d23081c
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 17, 2026
25a83f8
feat: Support Export Query Results to JSON/JSONL file (#60)
shirly121 Mar 18, 2026
b7354cd
remove bytearray
liulx20 Mar 18, 2026
34b51b5
add codegraph-qa skill (#78)
BingqingLyu Mar 18, 2026
65d5625
fix: Fix default value support for all type of properties (#63)
zhanglei1949 Mar 19, 2026
fcf8e7c
fix: Fix incorrect edge table state when transforming between bundled…
zhanglei1949 Mar 19, 2026
839acf2
fix: make the dedup operator cover all column types (#80)
liulx20 Mar 19, 2026
99d150b
Correct the is_optional interface behavior for certain columns (#90)
liulx20 Mar 19, 2026
3650f3e
add a codegraph example (#87)
BingqingLyu Mar 19, 2026
3b34765
add checkRowIndex
liulx20 Mar 19, 2026
0a405bb
Merge branch 'main' into java-sdk
liulx20 Mar 19, 2026
6c88975
add update_was_null
liulx20 Mar 19, 2026
87ddad5
Merge branch 'java-sdk' of https://github.com/liulx20/neug into java-sdk
liulx20 Mar 19, 2026
a3dd71b
update doc
liulx20 Mar 19, 2026
eef7ce0
fix
liulx20 Mar 19, 2026
dabb894
update doc
liulx20 Mar 19, 2026
4b154c9
fix
liulx20 Mar 19, 2026
e70b45e
Implement the iteration method for QueryResult
liulx20 Mar 19, 2026
ad18239
update query_result.md
liulx20 Mar 19, 2026
ebe9b7e
update
liulx20 Mar 19, 2026
ee3368f
update doc
liulx20 Mar 20, 2026
3cbb963
format example
liulx20 Mar 20, 2026
8939f19
format
liulx20 Mar 20, 2026
f4dcb00
Merge branch 'main' into java-sdk
liulx20 Mar 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- main
paths:
- 'doc/**'
- 'tools/java_driver/**'
- '.github/workflows/docs.yml'


Expand All @@ -32,16 +33,24 @@ jobs:
with:
python-version: '3.10'

- name: Setup Java and Maven
uses: s4u/setup-maven-action@v1.19.0
with:
java-version: '17'
maven-version: '3.9.6'

- name: Build Documentation
run: |
sudo apt update
sudo apt install -y doxygen graphviz
cd ${GITHUB_WORKSPACE}/tools/java_driver
mvn -DskipTests javadoc:javadoc
cd ${GITHUB_WORKSPACE}/tools/python_bind
python3 -m pip install -r requirements.txt
python3 -m pip install -r requirements_dev.txt
cd ${GITHUB_WORKSPACE}/doc
. /home/neug/.neug_env
make dependencies
make html

mkdir -p ${GITHUB_WORKSPACE}/doc/build/html/reference/java_api
cp -r ${GITHUB_WORKSPACE}/tools/java_driver/target/site/apidocs ${GITHUB_WORKSPACE}/doc/build/html/reference/java_api/
12 changes: 12 additions & 0 deletions .github/workflows/format-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,12 @@ jobs:
with:
python-version: '3.10'

- name: Setup Java and Maven
uses: s4u/setup-maven-action@v1.19.0
with:
java-version: '17'
maven-version: '3.9.6'

- name: Get PR Changes
uses: dorny/paths-filter@v3
id: changes
Expand Down Expand Up @@ -157,4 +163,10 @@ jobs:
(python3 -m flake8 .) || (print_error "flake8 check failed" "tests/e2e" "flake8" && exit 1)
popd

- name: Java Format Check
run: |
pushd ${GITHUB_WORKSPACE}/tools/java_driver
mvn spotless:check
popd


19 changes: 18 additions & 1 deletion .github/workflows/neug-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- 'proto/**'
- 'third_party/**'
- 'tools/python_bind/**'
- 'tools/java_driver/**'
- 'tests/**'
- '.github/workflows/neug-test.yml'
- 'scripts/install_deps.sh'
Expand All @@ -28,6 +29,7 @@ on:
- 'proto/**'
- 'third_party/**'
- 'tools/python_bind/**'
- 'tools/java_driver/**'
- 'tests/**'
- '.github/workflows/neug-test.yml'
- 'scripts/install_deps.sh'
Expand Down Expand Up @@ -78,6 +80,7 @@ jobs:
- 'proto/**'
- 'third_party/**'
- 'tools/python_bind/**'
- 'tools/java_driver/**'
- 'tests/**'
- '!tests/extension/**'
- '!tests/extensions/**'
Expand All @@ -102,7 +105,7 @@ jobs:
uses: actions/cache@v4
with:
path: ~/.cache/ccache
key: ${{ runner.os }}-ccache-${{ github.ref_name }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', 'src/**', 'include/**', 'proto/**', 'tools/python_bind/**', '.github/workflows/neug-test.yml') }}
key: ${{ runner.os }}-ccache-${{ github.ref_name }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', 'src/**', 'include/**', 'proto/**', 'tools/python_bind/**', 'tools/java_driver/**', '.github/workflows/neug-test.yml') }}
restore-keys: |
${{ runner.os }}-ccache-${{ github.ref_name }}-
${{ runner.os }}-ccache-main-
Expand Down Expand Up @@ -140,6 +143,12 @@ jobs:
with:
python-version: '3.13'

- name: Setup Java and Maven
uses: s4u/setup-maven-action@v1.19.0
with:
java-version: '17'
maven-version: '3.9.6'

- name: Set ENABLE_GCOV for main branch
if: steps.scope.outputs.extension_only != 'true' && (github.ref == 'refs/heads/main' && github.repository == 'alibaba/neug' && github.event_name == 'push')
run: |
Expand Down Expand Up @@ -347,6 +356,14 @@ jobs:
python3 -m pytest --cov=neug --cov-report=term --exitfirst --cov-append --cov-config=.coveragerc -sv tests/test_ngcli_commands.py
python3 -m pytest --cov=neug --cov-report=term --exitfirst --cov-append --cov-config=.coveragerc -sv tests/test_ngcli_basics.py

- name: Run Java Driver Test
if: steps.scope.outputs.extension_only != 'true'
run: |
cd ${GITHUB_WORKSPACE}/tools/java_driver/
mvn test
cd ${GITHUB_WORKSPACE}/tools/python_bind/
python3 -m pytest -sv tests/test_java_driver.py

# ========================================
# Phase 4: E2E Tests
# ========================================
Expand Down
2 changes: 1 addition & 1 deletion bin/benchmark.cc
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ void benchmark_iteration(
}

int main(int argc, char** argv) {
cxxopts::Options options("rt_server", "Real-time graph server for NeuG");
cxxopts::Options options("benchmark", "Benchmarking tool for NeuG");
options.add_options()("help", "Display help message")(
"data-path,d", "", cxxopts::value<std::string>())(
"memory-level,m", "", cxxopts::value<int>()->default_value("1"))(
Expand Down
1 change: 1 addition & 0 deletions doc/source/_scripts/generate_cpp_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -1890,6 +1890,7 @@ def _generate_reference_meta_file(self):
content = """export default {
cpp_api: "C++ API",
python_api: "Python API",
java_api: "Java API",
};
"""

Expand Down
4 changes: 2 additions & 2 deletions doc/source/_scripts/generate_python_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def clean_generated_docs(output_dir: Path, scripts_dir: Path):
def generate_docs():
"""Generate documentation for all modules using pydoc-markdown."""
# Script is now in source/_scripts/
scripts_dir = Path(__file__).parent
scripts_dir = Path(__file__).resolve().parent
doc_dir = scripts_dir.parent.parent # from source/_scripts/ -> source/ -> doc/
output_dir = scripts_dir.parent / 'reference' / 'python_api' # source/reference/python_api
output_dir.mkdir(parents=True, exist_ok=True)
Expand Down Expand Up @@ -435,7 +435,7 @@ def main():
def generate_docs_no_clean():
"""Generate documentation without cleaning first."""
# Script is now in source/_scripts/
scripts_dir = Path(__file__).parent
scripts_dir = Path(__file__).resolve().parent
doc_dir = scripts_dir.parent.parent # from source/_scripts/ -> source/ -> doc/
output_dir = scripts_dir.parent / 'reference' / 'python_api' # source/reference/python_api
output_dir.mkdir(parents=True, exist_ok=True)
Expand Down
5 changes: 4 additions & 1 deletion doc/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,9 @@
]

# Source file suffixes
source_suffix = ['.rst', '.md']
# Keep .md before .rst so duplicated docnames (e.g. index.md + index.rst)
# resolve to Markdown, which is where the Java API landing content lives.
source_suffix = ['.md', '.rst']

# API documentation settings
# Templates for API documentation
Expand All @@ -100,6 +102,7 @@
exclude_patterns = [
'_build',
'.ipynb_checkpoints',
'reference/java_api/index.rst',
]

# -- Options for HTML output -------------------------------------------------
Expand Down
26 changes: 26 additions & 0 deletions doc/source/development/code_style_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,20 @@ We follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppgu

We follow the [black](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html) code style for Python coding standards.

## Java Style

Java code in NeuG follows [Google Java Style](https://google.github.io/styleguide/javaguide.html),
enforced by the Maven Spotless plugin (with `google-java-format`).

Java source is located at [tools/java_driver](../../tools/java_driver).

## Style Linter and Checker

GraphScope uses different linters and checkers for each language to enforce code style rules:

- C++: [clang-format-8](https://releases.llvm.org/8.0.0/tools/clang/docs/ClangFormat.html) and [cpplint](https://github.com/cpplint/cpplint)
- Python: [Flake8](https://flake8.pycqa.org/en/latest/)
- Java: [Spotless Maven Plugin](https://github.com/diffplug/spotless/tree/main/plugin-maven)

Each linter can be included in the build process to ensure that the code adheres to the style guide.
Below are the commands to check the code style in each language:
Expand Down Expand Up @@ -51,4 +59,22 @@ $ python3 -m isort --check --diff .
$ python3 -m black --check --diff .
$ python3 -m flake8 .
$ popd
```

For Java:

- Check style only:

```bash
$ pushd tools/java_driver
$ mvn spotless:check
$ popd
```

- Auto-format Java files:

```bash
$ pushd tools/java_driver
$ mvn spotless:apply
$ popd
```
1 change: 1 addition & 0 deletions doc/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ NeuG documentation

Python API <reference/python_api/index>
C++ API <reference/cpp_api/index>
Java API <reference/java_api/index>

.. toctree::
:maxdepth: 1
Expand Down
1 change: 1 addition & 0 deletions doc/source/reference/_meta.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export default {
cpp_api: "C++ API",
python_api: "Python API",
java_api: "Java API",
};
6 changes: 3 additions & 3 deletions doc/source/reference/cpp_api/connection.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ result = conn->Query("MATCH (p:Person) WHERE p.age > $min_age RETURN p",
"read", params);
// Process results
if (result.has_value()) {
for (auto& record : result.value()) {
// Access columns via record.entries()
for (const auto& record : result.value()) {

}
} else {
std::cerr << "Query failed: " << result.error().message() << std::endl;
Expand All @@ -83,7 +83,7 @@ if (result.has_value()) {
- Use parameterized queries for dynamic values to prevent injection.
- Specifying correct access_mode ensures proper transaction handling.

- **Returns:** `result<QueryResult>` containing either:
- **Returns:** result<QueryResult> containing either:

- `QueryResult` with query results on success
- Error status with message on failure
Expand Down
2 changes: 1 addition & 1 deletion doc/source/reference/cpp_api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ int main() {

// Process results
if (result.has_value()) {
for (auto& record : result.value()) {
for (const auto& record : result.value()) {
std::cout << record.ToString() << std::endl;
}
}
Expand Down
9 changes: 8 additions & 1 deletion doc/source/reference/cpp_api/neug_db.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ db.Open("/path/to/data", 4); // 4 threads
auto conn = db.Connect();
auto result = conn->Query("MATCH (n:Person) RETURN n LIMIT 10");
// Process results
for (auto& record : result.value()) {
for (const auto& record : result.value()) {
std::cout << record.ToString() << std::endl;
}
// Close database (persists data)
Expand Down Expand Up @@ -188,3 +188,10 @@ Remove a connection from the database.
- This method is used to remove a connection when it is closed, to remove the handle from the database.
- This method is not thread-safe, so it should be called only when the connection is closed. And should be only called internally.

#### `CloseAllConnection()`

Remove all connection from the database.

- **Notes:**
- This method is used to remove all connection when tp svc created, to remove the handle from the database.

Loading
Loading