You can interact with Kùzu through the CLI and client APIs in C, C++, Python, Node.js, Rust, and Java.
Each query to Kùzu through its CLI or client APIs are transactional, satisfying serializability, atomicity and durability. More details on this part are given in the transactions section.
Note on Connecting to the Same Database Directory From Multiple
Each way ultimately creates a
Database instance in C++ (Kùzu's CLI is written in C++, so is a C++
process, and Kùzu's Python API, through which you create a
PyDatabase instance is a binding to Kùzu's C++ API
and so ultimately creates a
Database instance. Similar for other language APIs). Each database you create is identified by its directory.
While it's possible to create multiple
Database instances that connect to the same database directory, you should only issue read queries in such scenarios.
This is because writes from one
Database instance will not be visible to another, leading to potential database corruption.
As of now, Kùzu does not ensure that you are connecting to the same database directory through a single
That being said, you're free to open multiple connections to the same database from the same
Database instance. But you shouldn't concurrently have a CLI open that writes to the same database directory and a separate C++ or Python process
that reads from the database in that directory.
📄️ Command Line
Through the CLI, you can issue Cypher queries or call shell commands.
Detailed Python API documentation can be found here.
Detailed Node.js API documentation can be found here.
🗃️ Other APIs Contributed Externally