Skip to main content

pyrazobill

Razobill Logo

PyPI Package Version License: Apache 2.0 DOI: 10.5281/zenodo.23287286

Python client library for the Razobill telemetry decomposition engine. It splits unstructured log lines into structured templates, numbers, and words, and restores original strings bit-for-bit. Built with a high-performance C++20 core and includes a resilient pure-Python fallback.


Lossless invertibility

Traditional log parsers discard formatting, alter timestamps, or leak unseen variable tokens into cluster definitions. Razobill enforces an algebraic invariant across every parse:

$$\forall m \in \Sigma^, \quad \text{RzJoin}(\text{RzSplit}(m)) \equiv m$$

Every byte of whitespace, delimiter punctuation, and parameter data is preserved with zero information destruction.


Quick installation

Install the precompiled binary wheel from PyPI:

pip install pyrazobill

Pre-built binary wheels support Python 3.9 through 3.13 on Linux (manylinux), macOS (arm64, x86_64), and Windows (amd64).


Public API reference

The pyrazobill module exports five primary functions with zero memory leaks:

Function Signature Description
RzSplit (line: Union[str, bytes], mode="semantic") -> RzRecord Splits a message into template, numbers, and words.
RzJoin (*record) -> Union[str, bytes] Reconstructs the exact raw log line byte-for-byte.
RzTemplate (line: Union[str, bytes], mode="semantic") -> Union[str, bytes] Extracts the template string without allocating value lists.
RzHash (line: Union[str, bytes]) -> int Computes 64-bit xxHash64 (seed 0) matching DuckDB and ClickHouse.
RzSplitMany (lines: Iterable, mode="semantic") -> List[RzRecord] Parses an iterable of messages in parallel releasing the GIL.

Usage

Splitting and joining lines

import pyrazobill as rz

# 1. Parse a log message
line = "Accepted publickey for ubuntu from 192.168.1.100 port 54322 ssh2"
record = rz.RzSplit(line)

print(record.template)
# 'Accepted publickey for {s} from {s} port {i} {s}'

print(record.ints)
# [54322]

print(record.strs)
# ['ubuntu', '192.168.1.100', 'ssh2']

# 2. Compute deterministic 64-bit template hash
print(rz.RzHash(record.template))
# 64-bit integer matching ClickHouse xxHash64() exactly

# 3. Restore the exact original text
restored = rz.RzJoin(*record)
assert restored == line

Batch processing with multi-threading

Use RzSplitMany to parse collections of messages in parallel:

import pyrazobill as rz

lines = [
    "Worker 1 finished job in 12 ms",
    "Worker 2 finished job in 19 ms",
    "Worker 3 finished job in 8 ms",
]

records = rz.RzSplitMany(lines)
for rec in records:
    print(rec.template, rec.ints)

RzSplitMany releases the Python GIL, allowing background worker threads to parse chunks simultaneously.


Scientific provenance

Razobill is grounded in information-theoretic invariants established in:

Atta, Moustafa Mahmoud (2026). Latitude and Doubt: An exact ledger of meaning in messages with measurements on the genetic code and on English. Zenodo. DOI: 10.5281/zenodo.23287286


Documentation

Metadata

Release files for pyrazobill 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyrazobill 1.1.2
File Size Uploaded
pyrazobill-1.1.2.tar.gz 188.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyrazobill 1.1.2
File
pyrazobill-1.1.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pyrazobill-1.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
pyrazobill-1.1.2-cp313-cp313-macosx_11_0_universal2.whl CPython 3.13 CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64) Details
pyrazobill-1.1.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pyrazobill-1.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
pyrazobill-1.1.2-cp312-cp312-macosx_11_0_universal2.whl CPython 3.12 CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64) Details
pyrazobill-1.1.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pyrazobill-1.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
pyrazobill-1.1.2-cp311-cp311-macosx_11_0_universal2.whl CPython 3.11 CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64) Details
pyrazobill-1.1.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pyrazobill-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
pyrazobill-1.1.2-cp310-cp310-macosx_11_0_universal2.whl CPython 3.10 CPython 3.10 macOS 11.0+ universal2 (ARM64, x86-64) Details
pyrazobill-1.1.2-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
pyrazobill-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
pyrazobill-1.1.2-cp39-cp39-macosx_11_0_universal2.whl CPython 3.9 CPython 3.9 macOS 11.0+ universal2 (ARM64, x86-64) Details

Total release size: 4.6 MB

Release files / pyrazobill-1.1.2.tar.gz

Download URL pyrazobill-1.1.2.tar.gz
Size 188.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f71150d37b8743d10b4e3c838457ab9e083c81c31c53ee89bfe8956c9e154af8
BLAKE2b-256 checksum
How to use checksums
b3d86ac7fc108548efb89087fe1875aa9b5b7eb5195ec4243957f3977d163649
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp313-cp313-win_amd64.whl

Download URL pyrazobill-1.1.2-cp313-cp313-win_amd64.whl
Size 112.8 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
517672a042c43cc08594a7079959fdebc191badc0f5189763a809e2e22851103
BLAKE2b-256 checksum
How to use checksums
a5577d1fda7d3ac93e30945df627204131bc1ab1089fb3fbc4cb41d2a7d1df7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrazobill-1.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 330.9 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0710e5c9001bcaacdfd452a4aa846c00e463fd34f8165d7cd8a4a6547fd82d07
BLAKE2b-256 checksum
How to use checksums
638f6924735f289ca77c0ad2f7e7486147c4ca49f0f9a4d8727ade61295bebb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp313-cp313-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.2-cp313-cp313-macosx_11_0_universal2.whl
Size 442.7 kB
Tags CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
7a6759312568c93973b3a9cb308b9930cf0a6268d547b85382d886e263271c69
BLAKE2b-256 checksum
How to use checksums
8d4559d0a10e9d07ddf0c55da21bbebb4a675d5b6ad0b93945e0dd2f927cdc80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp312-cp312-win_amd64.whl

Download URL pyrazobill-1.1.2-cp312-cp312-win_amd64.whl
Size 112.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ada2f409fbfa6a3978f83dedf1e69aa740f756026ec086f9f2a2a6b90fbae057
BLAKE2b-256 checksum
How to use checksums
d5a376461acb0c048fd6a9f4b743c915ef5e7f6a52af6687139162c253a58eba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrazobill-1.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 330.8 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6bca2648ec13e7217b5d92a4883cf8dbcbb078c3814409b2b57e3c61431b0e85
BLAKE2b-256 checksum
How to use checksums
903ebb5aabb1224692e32162de74ab3f101d58b73346639dc06e2484758ec1ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp312-cp312-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.2-cp312-cp312-macosx_11_0_universal2.whl
Size 442.6 kB
Tags CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
fdd0ef7a54b68839e66a85b18633a3dcd7cd0a33395bd143cc0430ffe1e7173a
BLAKE2b-256 checksum
How to use checksums
e9c7f3305be33cc61bfd0aa098a8f2be3ef6289f67ca5458784de9751a40a940
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp311-cp311-win_amd64.whl

Download URL pyrazobill-1.1.2-cp311-cp311-win_amd64.whl
Size 112.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
0b2a01a609b18e906fc8d54d2e4f104048d69134e7719c735c10fb62b50bcc4f
BLAKE2b-256 checksum
How to use checksums
e6102db3992953c31516afa4edf17ff36a4eeffea6388debc842bcbeba75aa45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrazobill-1.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 330.8 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ad6a60ad1f79be4a0da74dabc775f5252c6924f98754938eb3223ac72392f09a
BLAKE2b-256 checksum
How to use checksums
a6895429150469b65c2b4b1a14eeccacc0e583e7fccf20ee89216310a31dcb87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp311-cp311-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.2-cp311-cp311-macosx_11_0_universal2.whl
Size 440.8 kB
Tags CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
215fee83c1145d90ec6c9a6a4af378d6e3f20e7ea21ace0a08ec350f3bc4fbca
BLAKE2b-256 checksum
How to use checksums
effc8542354a59a4ea9ef0ae922bfa8503617c8c74ba620aec03ffb9254bd3ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp310-cp310-win_amd64.whl

Download URL pyrazobill-1.1.2-cp310-cp310-win_amd64.whl
Size 111.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
44e1e3023653a63294c41c8e42d658051885eb4f46f7e1dd7cabe7d801ddbbb7
BLAKE2b-256 checksum
How to use checksums
939e4efefe8a10710c70a8b8618b38197e2e4be1368a51a9105b04f1f37d2d4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrazobill-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 329.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
81be75837f01582daaa32486a9b00c8d88e1027a0ebe37e910d87af419e8b75f
BLAKE2b-256 checksum
How to use checksums
6b0c6de3a271f8098ce851c4a0835669f65a9bc50e6c97a9920e37ae01a0c96f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp310-cp310-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.2-cp310-cp310-macosx_11_0_universal2.whl
Size 437.3 kB
Tags CPython 3.10 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
b0ab626ff957765fb0a0a970bda8487f5996a1b0edc54688cfbbdd8b85843e4b
BLAKE2b-256 checksum
How to use checksums
0cdac992fb7623916b3f6f8dfd4d2c4997468bf23c5daeccefc40fd607a3a022
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp39-cp39-win_amd64.whl

Download URL pyrazobill-1.1.2-cp39-cp39-win_amd64.whl
Size 111.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
32dc32b944b1488bb70d606114f2eaddeaf677480c227459d87fa17b743b976c
BLAKE2b-256 checksum
How to use checksums
4bde603925fc24f7220470b3cd383c1aef425893fdebb434889c848738c65b02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrazobill-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 329.6 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
98f275d7c3d53e5189fd96590a429ccdb52107caf5366c287646b631c8018ca9
BLAKE2b-256 checksum
How to use checksums
1850d076196cba5b801268d6ea2cbd51ecb8255af447d25c37e46695e344a771
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pyrazobill-1.1.2-cp39-cp39-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.2-cp39-cp39-macosx_11_0_universal2.whl
Size 437.4 kB
Tags CPython 3.9 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
4f55b6b116f6cab25939092e3374f57ec54cc61daa740cb412912413c3302af2
BLAKE2b-256 checksum
How to use checksums
f470bc5bf83f3e5da26d98515ecda095e36ec58303d7e2bb7206d3090c0d6d08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

This release

1.1.2 This release

16 release files

1.1.1

16 release files

1.0.1

16 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page