5 releases

0.1.4 Jun 27, 2023
0.1.3 Jun 21, 2023
0.1.2 Jun 20, 2023
0.1.1 Jun 19, 2023
0.1.0 Jun 19, 2023

#2283 in Database interfaces


Used in tugraph-plugin-util

Apache-2.0

6MB
123K SLoC

C++ 87K SLoC // 0.1% comments Python 14K SLoC // 0.3% comments C 9K SLoC // 0.2% comments Rust 7.5K SLoC // 0.1% comments Visual Studio Project 4K SLoC Java 858 SLoC // 0.3% comments AsciiDoc 424 SLoC // 0.0% comments Shell 390 SLoC // 0.3% comments Visual Studio Solution 265 SLoC Cython 230 SLoC // 0.1% comments Bitbake 153 SLoC Batch 143 SLoC Apache Velocity 121 SLoC Swift 30 SLoC Forge Config 14 SLoC INI 4 SLoC

rust-tugraph

CI crates.io docs.rs license rust 1.68.0 required

Requirements

  • tugraph-db Build Toolchains
    • CMake(>=3.15)
    • g++(>=8.2)
  • tugraph-db Dependencies

Contributing

Any feedback and pull requests are welcome! If some apis are not flexiable, let me know and I'll relax constraints. If some public types or apis don't conform well to Rust API Guidelines Checklists, open issues or send pull requests.

Usage

Now this binding is dynamically linked with liblgraph.so built from tugraph-db. It aims to port rust apis to write rust procedure(a.k.a tugraph plugins). If you want to statically link with liblgraph.a, let me know.

rust-tugraph depends on libtugraph-sys which is a unsafe wrapper of tugraph c++ apis. libtugraph-sys uses a build script build.rs to build liblgraph.so, which delegates to cmake and other build c++ build essentials. The most important part is to choose g++/gcc compiler, and the build script exports two environment vars LGRAPH_CXX_COMPILER and LGRAPH_C_COMPILER.

LGRAPH_CXX_COMPILER=/usr/local/bin/g++ \
LGRAPH_C_COMPILER=/usr/local/bin/gcc \
cargo {build,run,test} [options] {target}

If you want to write rust procedure, crate tugraph-plugin-util helps you a lot.

NOTE: After TuGraph b8dcaac version, it supports writing plugin in rust language

Dependencies