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

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

Built distributions (wheels)

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

Total release size: 5.0 MB

Release files / pyrazobill-1.1.4.tar.gz

Download URL pyrazobill-1.1.4.tar.gz
Size 158.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c0388ad7d3796f930ee1d6b05c8ae0692d92e71e7f0ce23af94b3b79359fc1e0
BLAKE2b-256 checksum
How to use checksums
560aa2d4e15a82fcff5c0230e9017d148b931dd089035d1d5e6d4f18d038a5c2
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.4-cp313-cp313-win_amd64.whl

Download URL pyrazobill-1.1.4-cp313-cp313-win_amd64.whl
Size 18.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
d01d91619003a3ccf9fb61e395976490fe3875a71967cdf296a249a704f935d9
BLAKE2b-256 checksum
How to use checksums
47dd7fd3c47af0f1c24cb4fe23e7e4d6fa5b75227b1266675b011376589fc74b
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.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 285.2 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
be0054d275858d7c74e24a329335d4697ac7f5f81c61385f5985cc0e15eef220
BLAKE2b-256 checksum
How to use checksums
5380fc7b2692ca3c2a81a0810f7135c01cb8ebf8dc9e281600ffbfe3461db107
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.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 255.4 kB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
03a6923b6337320de7e17caffb5060d657fc45f277a1be47477fea2cecac103d
BLAKE2b-256 checksum
How to use checksums
d5296f7798f5c43de789838896611132b020b106630f39163027055905109504
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.4-cp313-cp313-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.4-cp313-cp313-macosx_11_0_universal2.whl
Size 405.2 kB
Tags CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
d8535c5fa72b5ddf66f4006f324bc1b3d29342940f35efbcf044333f847156c8
BLAKE2b-256 checksum
How to use checksums
c2c8cc44b1c9eeed4688862c53d460a6cccce959e5328a23e4e787795f8afed0
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.4-cp312-cp312-win_amd64.whl

Download URL pyrazobill-1.1.4-cp312-cp312-win_amd64.whl
Size 18.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
504eb363e8c4ce8aabfbb6c9d29069d0284025cb7224f60b4ae5578d7a6916a7
BLAKE2b-256 checksum
How to use checksums
7cb141f608d6b0500e2aa639653e09908b9ecd418ee65ff228b0344ac0420fa2
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.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 285.1 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7239ef32650ed78c4ce9bc55241eb4eefd16aecf542208cd02314e3dc917d277
BLAKE2b-256 checksum
How to use checksums
48b13360684c5694febc258cc50b3d36b3b0f05016fc51262f09265da0db78cf
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.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 255.0 kB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
aab514a3f7757245d3fd6d7ce0b41f087a20b7f58587ccf48d5bcfa060cab1c6
BLAKE2b-256 checksum
How to use checksums
26c18056f925570c023e4581987ae3134b8ca4a84b6a4f15c33ed172bce9673e
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.4-cp312-cp312-macosx_11_0_universal2.whl

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

Download URL pyrazobill-1.1.4-cp311-cp311-win_amd64.whl
Size 18.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
50bbaddc6be864579ad3679f3ee127536c35287cd20f288846cc3dfc2edfd8c9
BLAKE2b-256 checksum
How to use checksums
051b3dc3aea711880abf43c2fadc06156b438e7e34f1c3f61e241e91a3461e43
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.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 284.4 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c72d62ca489740dacf803b39c7a28721d79f1f560f9f42d84e9346752cbdd77e
BLAKE2b-256 checksum
How to use checksums
89989cc727141e8157341720977ae5ed203ed0fb75f622614908e69220b86a8b
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.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 254.4 kB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e93bed2167a905ec7c0b492386bd07a5ce8f92292b5ad7ce9912cc139c87f037
BLAKE2b-256 checksum
How to use checksums
ea931f6b81029afbff145ff2ad036dd8eebd3c998f801ac01482a87ea97c135a
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.4-cp311-cp311-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.4-cp311-cp311-macosx_11_0_universal2.whl
Size 402.9 kB
Tags CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
93bb4ee6b1260758b26b62fd388a42b9df3ee50505c481143b1e95fd24c918e7
BLAKE2b-256 checksum
How to use checksums
5971468ef1cecd9bc373fcfe89044c80fb1f0ed4f6c2ef4f23de052d8066f37a
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.4-cp310-cp310-win_amd64.whl

Download URL pyrazobill-1.1.4-cp310-cp310-win_amd64.whl
Size 18.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
5e89902838b7d6b0f103d24f6fa93ddefe6ea0e55116c8d07d043f904f1194fa
BLAKE2b-256 checksum
How to use checksums
30ea60412a83885bef9a3cb152ab3c5b2ae3359263513ab73215cbd69acb9909
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.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 282.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
0bf65d8e19118cea2d83a8671cfece993ebd16874eb05cee1a0d4f11eb28746f
BLAKE2b-256 checksum
How to use checksums
36d95343669e33499f96e9fd1d90a797fa4252ec6d1a0433a3dff421697bf801
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.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 253.6 kB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a2c872bad115ca25ef6b7adb473b09729fe0fa76adf7f1f30a9007ce14877005
BLAKE2b-256 checksum
How to use checksums
37af883caadb79acec32e6b1af4a8a514444c7e54c76addb8cfa96f2f5f34ee5
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.4-cp310-cp310-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.4-cp310-cp310-macosx_11_0_universal2.whl
Size 399.5 kB
Tags CPython 3.10 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
9a580efb67f98d65402b8f20abbecf14abb57037939a189cc50959345c36f881
BLAKE2b-256 checksum
How to use checksums
315532d17d90d4b7896bb6b266f27845a9b79c2f7cd04f3648ae5c04321741b3
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.4-cp39-cp39-win_amd64.whl

Download URL pyrazobill-1.1.4-cp39-cp39-win_amd64.whl
Size 18.2 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
5843c5bf18e5e66b92f2f0eea3cd10a7cf5fbd831467d3f9bea2d7000b43d08f
BLAKE2b-256 checksum
How to use checksums
aa2b710fcced5312a78d1337a8561b255a5c3faf0a670a9cf3ab638d7d7fe184
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.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 282.7 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5d2c7986f920eb6ba0a1a20672c06ca097c53a03d3d41b49427ebd2f93d5c691
BLAKE2b-256 checksum
How to use checksums
a17321d468e4fd6bddf0bdc251cb6201ab5991b139d649a4d0deeab61c8e5c71
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.4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 253.8 kB
Tags CPython 3.9 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d58ec2f1b6c2f0f7d73368850f22f183bc9139cbfc52f84a189275f3cf4ca9f8
BLAKE2b-256 checksum
How to use checksums
783680f20c5373bc5843a56ac4e8254c3ad15debca13d03ba0b68f1df7a786ce
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.4-cp39-cp39-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.4-cp39-cp39-macosx_11_0_universal2.whl
Size 399.7 kB
Tags CPython 3.9 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
2994b012ce0043a9769aac8d5e70859e187080f4e27b4b88ebdfec339d30c15f
BLAKE2b-256 checksum
How to use checksums
e70d2ec8f0a99da9318f41f2813ba6e88b35fc74f4e9fe05d31f54db161b2f96
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.4

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.

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