Install With Binary

Download Minimal or Standard, verify its checksum, and start Lavik 0.2.0 from the extracted directory.

Before You Start

Use Linux 6.1+ with io_uring enabled and Ubuntu 24.04-compatible glibc. The Linux server binaries do not execute directly on macOS or Windows; use a suitable Linux VM or the Docker guide. Minimal uses kernel TCP/io_uring. Standard also includes opt-in SPDK/DPDK and needs x86-64-v2 or ARMv8-A + CRC32 plus NUMA/UUID libraries.

1. Choose and download a package

Minimal is the simplest starting point: kernel TCP and io_uring storage, without SPDK / DPDK.

Install the client and dependencies (Ubuntu 24.04)

Linux · bash
sudo apt-get update &&
sudo apt-get install -y ca-certificates curl redis-tools

Download, verify, and enter the package directory

Run this in a Bash terminal. The commands stop if a checksum check fails. If you already extracted this package from the Download page, enter the directory shown below.

Linux · bash
curl -fLO --retry 3 https://github.com/eloqdata/lavik/releases/download/v0.2.0/lavik-v0.2.0-linux-x86_64-minimal.tar.gz &&
curl -fLO --retry 3 https://github.com/eloqdata/lavik/releases/download/v0.2.0/lavik-v0.2.0-linux-x86_64-minimal.tar.gz.sha256 &&
sha256sum -c lavik-v0.2.0-linux-x86_64-minimal.tar.gz.sha256 &&
tar -xzf lavik-v0.2.0-linux-x86_64-minimal.tar.gz &&
cd lavik-v0.2.0-linux-x86_64-minimal &&
./lavik --version

Your current directory should now be: lavik-v0.2.0-linux-x86_64-minimal

Expect lavik 0.2.0. Keep this terminal in that directory for the startup step below.

2. Start And Connect

Run the following in Bash from the extracted directory. Leave this terminal running and use a second terminal for redis-cli. The same file-backed example works with Minimal and Standard. The loopback listener and /tmp directory are intended for a disposable local evaluation.

Linux · bash
#!/usr/bin/env bash
# A private throwaway file: never point this example at an existing database.
set -euo pipefail
if [ ! -x ./lavik ]; then
  echo "Run this from the extracted Lavik package directory (the folder containing ./lavik)." >&2
  exit 1
fi
mkdir -p /tmp/lavik-example
if [ ! -e /tmp/lavik-example/data ]; then
  fallocate -l 512M /tmp/lavik-example/data
fi
./lavik --bind 127.0.0.1 --port 6379 --metrics-port 0 \
  --network kernel --storage uring \
  --threads 2 --no-pin-workers --registered-buffer-mb-per-worker 64 \
  --shutdown-checkpoint --data-file /tmp/lavik-example/data \
  --log-dir /tmp/lavik-example/logs
Linux · bash
redis-cli -h 127.0.0.1 -p 6379 PING
# PONG
redis-cli -h 127.0.0.1 -p 6379 SET greeting 'hello from Lavik'
# OK
redis-cli -h 127.0.0.1 -p 6379 GET greeting
# hello from Lavik

3. Stop And Restart

Press Ctrl-C, then rerun the same startup block from the same directory. The script preserves an existing data file. Use a persistent data directory for data you intend to keep. Extracting an archive does not add its directory to PATH: ./lavik runs the local executable. A systemd service is optional; the APT guide provides one.

Install From Packages And Use systemd →

Use SPDK With Standard

Installing Standard does not switch the storage backend. Provision a dedicated empty NVMe namespace, IOMMU/VFIO, hugepages and locked-memory limits before selecting --storage=spdk and a spdk://PCI_BDF/NSID data path. Kernel TCP can remain enabled. File-backed examples do not measure NVMe/SPDK performance.

For 0.2.0, use the SPDK helper scripts from the v0.2.0 checkout (commit 2908f86f2770e9c6e8acc6585b3bedb4b44d1cd5). The upstream walkthrough retains older beta examples: replace its checkout with v0.2.0 and set LAVIK_BINARY to /opt/lavik-v0.2.0-linux-x86_64/lavik, or the actual absolute path to your extracted 0.2.0 Standard executable. Keep the documented dedicated-device checks, hugepage setup and io_uring requirements.

SPDK Setup For This Release →