2 releases

0.0.2 Oct 7, 2024
0.0.1 Oct 7, 2024

#1986 in Database interfaces

Download history 323/week @ 2024-10-05 244/week @ 2024-10-12 361/week @ 2024-10-19 295/week @ 2024-10-26 506/week @ 2024-11-02

1,423 downloads per month
Used in opendal

Apache-2.0 OR MIT

4.5MB
93K SLoC

rust-nebula

rust-nebula is a Rust client for developers to connect to NebulaGraph. rust-nebula only supports NebulaGraph which uses V3 protocol now.

What we can achieve

NebulaGraph is composed of three services: Graph service, Meta service, and Storage service, which is an architecture that separates storage and computing.

Refer to nebula-go and nebula-python, we have implemented Graph Client, Meta Client and Storage Client:

  • Graph Client: It supports all nGQL query. For most users, they only need this client to finish jobs.
  • Meta Client: It's used to obtain some storaged info so that Storage Client can do scan op.
  • Storage Client: It could scan existed vertex and edge, and generally, it's prepared for large-scale data science engineering and data migration in the intranet.

Examples

It has some examples in examples.

Todo

This repo is under construction. Welcome everyone to actively participate in improving the rust client and achieving more functions!

  • Make value wrapper provide comprehensive support for all data types in NebualGraph.
  • Robust error handling mechanism for value wrapper.
  • A good session pool for Graph Client, perhaps Storage Client and Meta Client could also use it
  • More commonly used instructions encapsulation for Graph Client, such as create tag/vertex, show tag/vertex etc.
  • Iterator for GraphQueryOutput and StorageQueryOutput.
  • Stream for StorageScanOutput.
  • More unit tests and code comments.

Reference

Part of the code in this project refers to the bk-rs/nebula-rs and vesoft-inc/nebula-rust project. Thank you for the authors' open source contribution.

Dependencies

~5–15MB
~172K SLoC