Skip to content
forked from kuzudb/kuzu

An in-process property graph database management system built for query speed and scalability.

License

Notifications You must be signed in to change notification settings

benjaminwinger/kuzu

 
 

Repository files navigation


Github Actions Badge slack twitter

Kùzu

Kùzu is an in-process property graph database management system (GDBMS) built for query speed and scalability. Kùzu is optimized for handling complex join-heavy analytical workloads on very large graph databases, with the following core feature set:

  • Flexible Property Graph Data Model and Cypher query language
  • Embeddable, serverless integration into applications
  • Columnar disk-based storage
  • Columnar sparse row-based (CSR) adjacency list/join indices
  • Vectorized and factorized query processor
  • Novel and very fast join algorithms
  • Multi-core query parallelism
  • Serializable ACID transactions

Kùzu is being actively developed at University of Waterloo as a feature-rich and usable GDBMS. Kùzu is available under a permissible license. So try it out and help us make it better! We welcome your feedback and feature requests.

Installation

Language Installation
Python pip install kuzu
NodeJS npm install kuzu
Rust cargo add kuzu
Java jar file
C/C++ precompiled binaries
CLI precompiled binaries

To learn more about installation, see our Installation page.

Getting Started

Refer to our Getting Started page for your first example.

More information can be found at

Build

To build from source code, Kùzu requires Cmake(>=3.11), Python 3, and a compiler that supports C++20.

  • Perform a full clean build without tests and benchmark:
    • make clean && make release
  • Perform a full clean build with tests and benchmark (optional):
    • make clean && make all
  • Run tests (optional):
    • make test && make pytest

For development, use make debug to build a non-optimized debug version. To build in parallel, pass NUM_THREADS as parameter, e.g., make NUM_THREADS=8.

After build, our CLI binary kuzu_shell is available under the directory build/release/tools/shell/.

Building on Windows

Currently MSVC is the only supported compiler:

  • In addition to the dependencies listed above, you will also need GNU Make and Ninja (E.g. with Chocolatey: choco install make ninja).
  • Build from within a "Visual Studio Developer Command Prompt" (or manually run vcvars64.bat for cmd or Launch-VsDevShell.ps1 for powershell. See here and here for details).
  • Run make release, or the commands listed in the previous section.

You can also build within Visual Studio, as long as you run make release first (or make debug), and then use the CMake plugin.

Contributing

We welcome contributions to Kùzu. If you are interested in contributing to Kùzu, please read our Contributing Guide.

License

By contributing to Kùzu, you agree that your contributions will be licensed under the MIT License.

Citing Kùzu

If you are a researcher and use Kùzu in your work, we encourage you to cite our work. You can use the following BibTeX citation:

@inproceedings{kuzu:cidr,
  author =  {Xiyang Feng and
             Guodong Jin and
             Ziyi Chen and
             Chang Liu and
             Semih Saliho\u{g}lu},
  title={K\`uzu Graph Database Management System},
  booktitle={CIDR},
  year={2023}
}
@misc{kuzu-github,
  author =  {Xiyang Feng and
             Guodong Jin and
             Ziyi Chen and
             Chang Liu and
             Semih Saliho\u{g}lu},
  title = {{K\`uzu Database Management System Source Code}},
  howpublished = {\url{https://github.com/kuzudb/kuzu}},
  month        = nov,
  year         = 2022
}

Contact Us

You can contact us at [email protected] or join our Slack workspace.

About

An in-process property graph database management system built for query speed and scalability.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 85.4%
  • Python 4.6%
  • Java 2.8%
  • Rust 2.3%
  • JavaScript 1.9%
  • CMake 0.9%
  • Other 2.1%