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.7

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.7
File Size Uploaded Provenance
pyrazobill-1.1.7.tar.gz 162.5 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for pyrazobill 1.1.7
File
pyrazobill-1.1.7-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pyrazobill-1.1.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyrazobill-1.1.7-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
pyrazobill-1.1.7-cp313-cp313-macosx_11_0_universal2.whl CPython 3.13 CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64) Details
pyrazobill-1.1.7-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pyrazobill-1.1.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyrazobill-1.1.7-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
pyrazobill-1.1.7-cp312-cp312-macosx_11_0_universal2.whl CPython 3.12 CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64) Details
pyrazobill-1.1.7-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pyrazobill-1.1.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyrazobill-1.1.7-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
pyrazobill-1.1.7-cp311-cp311-macosx_11_0_universal2.whl CPython 3.11 CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64) Details
pyrazobill-1.1.7-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pyrazobill-1.1.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyrazobill-1.1.7-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
pyrazobill-1.1.7-cp310-cp310-macosx_11_0_universal2.whl CPython 3.10 CPython 3.10 macOS 11.0+ universal2 (ARM64, x86-64) Details
pyrazobill-1.1.7-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
pyrazobill-1.1.7-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pyrazobill-1.1.7-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
pyrazobill-1.1.7-cp39-cp39-macosx_11_0_universal2.whl CPython 3.9 CPython 3.9 macOS 11.0+ universal2 (ARM64, x86-64) Details

Total release size: 6.7 MB

Release files / pyrazobill-1.1.7.tar.gz

Download URL pyrazobill-1.1.7.tar.gz
Size 162.5 kB
Tags Source
SHA-256 checksum
How to use checksums
00481b80ae46d6c4e74aacc6306ba0c4aba97c9fe3503c8a762a6db6927e0dbb
BLAKE2b-256 checksum
How to use checksums
925685524b5a5b15333d0ad86e210a605adcea8ef13aaaa078a49a1690914667
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.7-cp313-cp313-win_amd64.whl

Download URL pyrazobill-1.1.7-cp313-cp313-win_amd64.whl
Size 165.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
ae3551e4d1bc1d8d64e7a03de57e8dc7d2af9bbacf6a7ce6526bb02ce90283f2
BLAKE2b-256 checksum
How to use checksums
153064183c6a806dd73fe3a549608bea956e4ec0abed4b4220f508f3ae316121
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.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 389.3 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b11e5d445bb88d865db4eeba6d30ed0de91e6ffcf6df62fd84c35a29059713e3
BLAKE2b-256 checksum
How to use checksums
870afad77d1e7521606e017ed883b0c16547936f3fe2a2d49d1ad334c9ea9d1b
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.7-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.7-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 353.0 kB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
94dd53271015306e11f9fe1f822366f758747f26defd22bbcfc1b8f1dd0f95b0
BLAKE2b-256 checksum
How to use checksums
2579803a8e08bf4f861ab1d78358226cde0010d5432fdf4b326981e85fe8c4b7
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.7-cp313-cp313-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.7-cp313-cp313-macosx_11_0_universal2.whl
Size 407.5 kB
Tags CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
098e0aa9ab4905825d664b829c5cb416f53307bb61d67fa16fb25df562fb1959
BLAKE2b-256 checksum
How to use checksums
5699016ecea247b07a01490379a676193bd5f7db072ea058b4feffa0bb9790b8
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.7-cp312-cp312-win_amd64.whl

Download URL pyrazobill-1.1.7-cp312-cp312-win_amd64.whl
Size 165.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
366c7ffd45831f22d6762869fc10dae4eb547e0cd397b303bb8aab1d15c9afdd
BLAKE2b-256 checksum
How to use checksums
c513b480982c3c3a3ac7c74f40d9ea5c67042a073c240232a00e4cbda10e1a96
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.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 389.2 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d8729eb8327f8636172d0288ac703a4627bd94d9bbacaa731cfadc27a0fc6586
BLAKE2b-256 checksum
How to use checksums
325b2bd6efa9bd591b2f47c755f40413e329172374eccefb3797a90541a63a6b
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.7-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.7-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 353.0 kB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
289d8de099a46dd2fc1749f246b7385eeb4d4f7672a1a078ebda5914d09580f1
BLAKE2b-256 checksum
How to use checksums
1b3eccea974392b34924c2962f7eacb2481830142029e9463abda6cc1020208c
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.7-cp312-cp312-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.7-cp312-cp312-macosx_11_0_universal2.whl
Size 407.4 kB
Tags CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
ec024ee3cd93738a7524d2a15d1008ef2e3f735de34e55869af5a1eecb9b03fa
BLAKE2b-256 checksum
How to use checksums
8f9c6671c8c7cd6090529b2073515482f97f75c21faed97ced3e2b46ec762558
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.7-cp311-cp311-win_amd64.whl

Download URL pyrazobill-1.1.7-cp311-cp311-win_amd64.whl
Size 164.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6f4d5256423946e629d536d0d9afe81986ab319f6d2cbb9d27c215d2078610b0
BLAKE2b-256 checksum
How to use checksums
42dd5806b8c1d5fc2865dfa24123c19b4849f6fa1c90d153c725baa0772173f6
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.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 388.5 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
31183ace3c284b67625e3cd3694123fb8e8867bfe5cd6e8295b42df00f27544d
BLAKE2b-256 checksum
How to use checksums
3bdf822d92d7176bef5d0dd1f5e5ac31080aaf721aa522097e8203f4fec18ff2
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.7-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.7-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 352.3 kB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5d587d3292818045005296fd13da6ca2ea07b20acc5a830ad018d3af30ba001a
BLAKE2b-256 checksum
How to use checksums
cfb9f910fa6fd04f0045f5964c67bd9a0c2393ec41a0c8a3e85ade7b20724548
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.7-cp311-cp311-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.7-cp311-cp311-macosx_11_0_universal2.whl
Size 405.1 kB
Tags CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
be8f6ecfe6a368a505c89f296bb2bce844112dfc3f2fe5dcac0186e57cf6cc8f
BLAKE2b-256 checksum
How to use checksums
f7e9af280442231a58acaf5750016caa749798ef5f5d37b23f40e8be5e2c65a6
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.7-cp310-cp310-win_amd64.whl

Download URL pyrazobill-1.1.7-cp310-cp310-win_amd64.whl
Size 163.6 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
db04bca137535f0cfa54fac15108ca45b66d5e2234b48b1366fde760e09ae8e0
BLAKE2b-256 checksum
How to use checksums
0b97c3957bdb5ff373c774dbe795b6a87dedc2798daacf08cb08dbe8e51d7b9c
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.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 386.4 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
58885b835267d48a0e77adec26c45478f2d8d94d99cb269bc0f95d2a1485ec24
BLAKE2b-256 checksum
How to use checksums
84ab7e0b0b82faeef1ec034f32e24b4d48db1fce2710701a351758bc37b72129
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.7-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.7-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 351.3 kB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c986bb7e4084a0693c529d78b94c04f81c5b55ae74376f04c225be3a4d4cbbb8
BLAKE2b-256 checksum
How to use checksums
284017bded5b9ee5d1eb8103ab104a25a9efb320d81ae0bbeb2576671978c3b9
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.7-cp310-cp310-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.7-cp310-cp310-macosx_11_0_universal2.whl
Size 401.7 kB
Tags CPython 3.10 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
bfe3f607bbedc5ce01e58d4c1ebe214c802f90e83fb0896b7696748cea41ef11
BLAKE2b-256 checksum
How to use checksums
2e89ca6183c830cd3d3a72b2e0a64dd7eda09bca48132260d35464dc7c5bb778
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.7-cp39-cp39-win_amd64.whl

Download URL pyrazobill-1.1.7-cp39-cp39-win_amd64.whl
Size 163.7 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
ec26cabe89362cc5dae83a01a713d77da1555673eece9ef28aef62d27dee56d9
BLAKE2b-256 checksum
How to use checksums
7ee80d9c79a517b33f08f17322ce0e0b90d9235aafef0b77c580c63f7414ce71
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.7-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.7-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 386.8 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3271620e6a963fae1468a69c8a86fccd8f8a399c4d17d209aff803274e49e904
BLAKE2b-256 checksum
How to use checksums
e14e17a2f2ca36d1d503739c2ea5f86df1b84993f3bba663399f56e9c73efa66
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.7-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.7-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 351.8 kB
Tags CPython 3.9 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
21734390c48267a02bd8d8a147d11dd282c20c92ad59b75aaacdf872ec3bef2c
BLAKE2b-256 checksum
How to use checksums
042f3ecd114eabb34f7b5aa00ae073df5b55be42e68ffaa75c6bcb831ecde7ef
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.7-cp39-cp39-macosx_11_0_universal2.whl

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

Security for pyrazobill 1.1.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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