tugraph

Crates.iotugraph
lib.rstugraph
version0.1.4
sourcesrc
created_at2023-06-19 08:42:40.891702
updated_at2023-06-27 04:59:09.982599
descriptionA rust binding for the TuGraph library
homepagehttps://github.com/antkiller996/rust-tugraph
repositoryhttps://github.com/antkiller996/rust-tugraph
max_upload_size
id893929
size399,869
(antkiller996)

documentation

README

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

Commit count: 17

cargo fmt