Skip to content
Blog

Extensions

Kuzu has an extension API that is designed to dynamically extend its capabilities. Extensions allow you to dynamically load the functionality you need at runtime, while helping limit the size of the core Kuzu library.

Official Extensions

The available extensions for each OS are listed here.

Available extensions

The following extensions are currently implemented:

ExtensionDescription
algoGraph algorithms
azureScan from Azure Blob Storage and Azure Data Lake Storage (ADLS)
deltaScan data from Delta Lake tables
duckdbScan data from an attached DuckDB database
ftsPerform full-text search using BM25
httpfsRead and write files over HTTP(S) protocol. Also used for attaching a remote Kuzu database.
icebergScan data from Iceberg tables
jsonScan and manipulate JSON data
llmGenerate text embeddings using external provider APIs
neo4jMigrate data from Neo4j into Kuzu
postgresScan data from an attached PostgreSQL database
sqliteScan data from an attached SQLite database
unityScan data from Unity Catalog tables
vectorPerform vector similarity search

Using extensions in Kuzu

This section describes how to use officially supported extensions in Kuzu.

List available extensions

You can list all available official extensions by running:

CALL SHOW_OFFICIAL_EXTENSIONS() RETURN *;

Install an extension

Kuzu requires you to install the extension before loading and using it.

Official extensions can be installed by running the INSTALL command:

INSTALL <EXTENSION_NAME>;

You only need to install an extension once.

Update an extension

If you run the INSTALL command for an extension that is already installed, the second install command will not perform any action.

If you want to re-download an extension for any reason, for example if the extension is not working properly, you can use the UPDATE command:

UPDATE <EXTENSION_NAME>;

Load an extension

You must load extensions before you can use them:

LOAD <EXTENSION_NAME>;

Official extensions can be loaded by simply specifying the extension name. For example, to load the json extension:

load json;

If you want to load an extension you have compiled yourself, you can specify the path to the compiled library. For example, to load a self-compiled json extension:

LOAD EXTENSION 'extension/custom_json/build/libjson.kuzu_extension';

List loaded extensions

You can view all your loaded extensions by running:

CALL SHOW_LOADED_EXTENSIONS() RETURN *;

Uninstall an extension

You can uninstall extensions if you don’t need them anymore by using the UNINSTALL command:

UNINSTALL <EXTENSION_NAME>;