Skip to main content
HelixDB is Helix’s built-in single-file key-value store. Data is stored in .hxdb files — no server, no setup, just a file. Powered by redb — a safe, ACID-compliant, zero-config embedded database.
import database

Quick Start

import database

db = database.open("myapp")
# Creates myapp.hxdb in the current directory

db.set("name", "Alex")
db.set("score", 42)
db.set("tags", ["rust", "helix"])

name = db.get("name")
print(name)
# Output: Alex

Functions

FunctionDescription
database.open(name)Open or create a HelixDB file. Returns a db object.
database.initialize(name)Alias for open.
The name argument is the database name. The .hxdb extension is added automatically if not present:
  • database.open("myapp") → opens/creates myapp.hxdb
  • database.open("data/cache.hxdb") → opens/creates data/cache.hxdb

Methods

MethodDescriptionExample
db.set(key, value)Store a valuedb.set("name", "Alex")
db.get(key)Retrieve a value (null if missing)db.get("name")"Alex"
db.delete(key)Remove a keydb.delete("name")
db.has(key)Check if key existsdb.has("name")true
db.keys()Get all keys as a listdb.keys()["name", "score"]
db.clear()Delete all datadb.clear()

Properties

PropertyDescription
db.pathPath to the .hxdb file

Supported Value Types

You can store any Helix value:
db.set("string", "hello")
db.set("number", 42)
db.set("float", 3.14)
db.set("bool", true)
db.set("null_val", null)
db.set("list", [1, 2, 3])
db.set("dict", {"nested": "data", "count": 5})
All values are serialized as JSON internally, so they survive restarts.

Examples

import database
db = database.open("counter")
count = db.get("visits")
if count == null
    count = 0
count = count + 1
db.set("visits", count)
print("Visit #{count}")

Compile Flag

cargo build --release --no-default-features --features mod_database