Search Shortcut cmd + k | ctrl + k
razobill

High-performance lossless log parsing, analytical database compaction, and information-theoretic semantic accounting.

Maintainer(s): 4t1a

Compatibility Matrix

This table covers all DuckDB releases that have not reached end-of-life, including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.

Platform 1.4.4 1.4.5 1.5.5 1.5.6 2.0.0
Linux AMD64
Linux ARM64
macOS AMD64
macOS ARM64
Windows AMD64
Windows ARM64
WebAssembly

Installing and Loading

INSTALL razobill FROM community;
LOAD razobill;

Example

-- Install and load the Razobill extension
INSTALL razobill FROM community;
LOAD razobill;

-- Vectorized single-pass composite struct decomposition: STRUCT(template VARCHAR, ints BIGINT[], strs VARCHAR[])
SELECT RzSplit('2026-10-10 12:00:00 [INFO] Worker 42 finished job in 150ms') AS parsed;

-- Extract structural template and 64-bit partition hash
SELECT RzTemplate('User 1042 authenticated') AS template,
       RzHash('User 1042 authenticated') AS template_hash;

-- Exact bit-for-bit lossless log reconstruction
SELECT RzJoin(d.template, d.ints, d.strs) AS reconstructed
FROM (SELECT RzSplit('User 1042 authenticated') AS d);

About razobill

Razobill is a high-performance C++20 log parsing and analytical database compaction engine grounded in "Latitude and Doubt" (M. M. Atta, 2026). It provides exact byte-for-byte lossless log reconstruction while reducing raw log storage by 45%+ in DuckDB and 93.8% in columnar cloud storage (AWS S3 Parquet).

Added Functions

function_name function_type description comment examples
RzHash scalar NULL NULL  
RzJoin scalar NULL NULL  
RzSplit scalar NULL NULL  
RzTemplate scalar NULL NULL  

Overloaded Functions

This extension does not add any function overloads.

Added Types

This extension does not add any types.

Added Settings

name description input_type scope aliases typed_value
temp_directory Set the directory to which temporary files are written. VARCHAR GLOBAL [] post.db.tmp