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

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

Built distributions (wheels)

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

Download URL pyrazobill-1.1.3.tar.gz
Size 157.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5391ae77eac880e7679948e5904f70a1d0f85f46ebb85043548bfb96aefe9212
BLAKE2b-256 checksum
How to use checksums
3b8716ac6baaef66ee138448a616a97ae132a1012668a36e1f306da44e1899fe
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.3-cp313-cp313-win_amd64.whl

Download URL pyrazobill-1.1.3-cp313-cp313-win_amd64.whl
Size 18.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
123a989f9711e2c2d672ec0a74c34921c2de34bc7f6935e74bf4c01766acba2b
BLAKE2b-256 checksum
How to use checksums
9263383ea2b1552a8e84986c508b26a054137caffc44510593e8fb7c98169a73
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.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 285.6 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5e6777932332464fa80dbfbe0de99ad20c58f7c404c22ba452f1ec8fe7a1e3a9
BLAKE2b-256 checksum
How to use checksums
12cc1e0a27496384f711c0d8a98db77381a65b18b1098e5720767e0c3ccf71d0
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.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 255.9 kB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3e178a770b0b4522f95d6627c7acb26c9dc4546cabcad14b725ecbba2785e2af
BLAKE2b-256 checksum
How to use checksums
adde335ebb0f2d0ecfa1cc21d8790837211043a68def8f6b9eec9398e103603e
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.3-cp313-cp313-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.3-cp313-cp313-macosx_11_0_universal2.whl
Size 406.0 kB
Tags CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
a9a71a020871da3dea60b43057943d874515ecd61593138083582d6a66d65174
BLAKE2b-256 checksum
How to use checksums
53c9b27a746bfccc5789f428df6f76784f950301b349e4946c229a6465d1c958
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.3-cp312-cp312-win_amd64.whl

Download URL pyrazobill-1.1.3-cp312-cp312-win_amd64.whl
Size 18.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ff36c66e3decb56bb5b1f1378f59b924388eec0270816a875fe2431f9127b0ad
BLAKE2b-256 checksum
How to use checksums
0137fa0856d79c26675ece25be41597bf988f509f0c23e916299861a3bdf5e00
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.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 285.5 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bfe93e2939806daccf267e406dfc65305995528a07f3ce44d051129b8d6cb4e2
BLAKE2b-256 checksum
How to use checksums
8f22cb4d5d34de3f0086c35280655b292782c817a7e97a61eac264c628dc8a87
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.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 255.4 kB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
28647eccaf3496035139c77e44366ee010de0aa45050547ad1c4ce541deab704
BLAKE2b-256 checksum
How to use checksums
21c5471177235f075c8d0473dcc3a6fa7f8b85341ffcaf38b22b2d91d6f228c7
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.3-cp312-cp312-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.3-cp312-cp312-macosx_11_0_universal2.whl
Size 405.9 kB
Tags CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
da4d052dde47d24183ebbdeb0090a7324d653d0d19c1a97dddcb04040376eb54
BLAKE2b-256 checksum
How to use checksums
887cb907a036b99d58db355226ed4f0403118ca71c2ddbe63f93987f6f2ee9c9
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.3-cp311-cp311-win_amd64.whl

Download URL pyrazobill-1.1.3-cp311-cp311-win_amd64.whl
Size 18.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f3e86f385cb00447801ee60465229611ded5fcc5189953ecac21611d60f165de
BLAKE2b-256 checksum
How to use checksums
2623e2ff7f6a8fc0246237a09f30b6f596d5df9928118e363a357011cbd552f0
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.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 284.9 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
65ba59fce116af61fd77c2b232ac47577fd964141a6574aa60d1f19a2626b4bf
BLAKE2b-256 checksum
How to use checksums
f448eba0debaa11f029921a10fb99f974115ef56865e98bc74dc85bc6c082811
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.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 254.9 kB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ccc301cb60ef8a6b3461b8a3fff59a8bff3af7f7b24ca2ab865658e64cc40fb0
BLAKE2b-256 checksum
How to use checksums
241442b1841fa73409c89aa2e2f337b126b41d6927662908634a50f8fa52d2f2
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.3-cp311-cp311-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.3-cp311-cp311-macosx_11_0_universal2.whl
Size 403.7 kB
Tags CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
916e4df1f33cbfc7b24beaa232028a2e146d0fcc681418edfc154ce567b3ba5d
BLAKE2b-256 checksum
How to use checksums
496c6e72f2ca99d27d6c386bb8f2de76ba053ecb423cedd85bea532a17bf9124
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.3-cp310-cp310-win_amd64.whl

Download URL pyrazobill-1.1.3-cp310-cp310-win_amd64.whl
Size 18.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b781fb63ae5d3fb85960ba82355fea54bc84608e9b37dea7304e2d56ecb3fcaa
BLAKE2b-256 checksum
How to use checksums
0d74350bad9706ebf316ff99a66f2fc38152f09deb42e36ef5c1083cb9f08c2e
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.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 282.9 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
36f1983b56fec235cf751ff1f2a75fc2f2b31a5ef34fd8982148253797310692
BLAKE2b-256 checksum
How to use checksums
6e50be7f87d72e5eec49b139ff7d061030b61f04f877a551c23a0649cbe9cfed
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.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 254.0 kB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
579b2a79d5c13784f931746ebe9dd780abb8ce627af352497f8514aba1963ce3
BLAKE2b-256 checksum
How to use checksums
f83cc5fba06483ab3a370c5fa406a01e286bae892a75d48c3b4a790ade8d014c
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.3-cp310-cp310-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.3-cp310-cp310-macosx_11_0_universal2.whl
Size 400.2 kB
Tags CPython 3.10 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
c57da533708910abc7964c70ac0586d0fab81f2b329fde480b1332983a24f5f0
BLAKE2b-256 checksum
How to use checksums
28b96157dafaf5bca8fca93a45d60451f0f08c5cca97b786426aa8f15812fa7c
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.3-cp39-cp39-win_amd64.whl

Download URL pyrazobill-1.1.3-cp39-cp39-win_amd64.whl
Size 18.2 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
924c7c4bebb10a159a8ea1b117a22ebc52a8040554720fdd4714fee262bd3bc5
BLAKE2b-256 checksum
How to use checksums
f18af3cdbc1159976d105b550af104f482d813696d6fdfed93e74b7d5a63061a
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.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyrazobill-1.1.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 283.1 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7f0833dbc63aea004320e387730e466748da0d1aa9b2190dfdfa102d97c59796
BLAKE2b-256 checksum
How to use checksums
11622ed37049f78f5d29c7c56cbfc9646595adf15170152b9a2c3e379a02805f
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.3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL pyrazobill-1.1.3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 254.3 kB
Tags CPython 3.9 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
510f9d31dfae3adc1da441e7aee04a43a15cd698859dab57f90bb5852bb52fd6
BLAKE2b-256 checksum
How to use checksums
6365b6a5553892843e73ef2a83cb927aaec584ea84a855cc53c34b26da4e2e83
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.3-cp39-cp39-macosx_11_0_universal2.whl

Download URL pyrazobill-1.1.3-cp39-cp39-macosx_11_0_universal2.whl
Size 400.4 kB
Tags CPython 3.9 macOS 11.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
ea9e36b12519ac06ba2b1ee98fe0d12e63d95a63f5b1f95c1db2fabb67ecefda
BLAKE2b-256 checksum
How to use checksums
8a74e4d722cbbb5b552f0a461ae850d2accff0c9ff232eae98526a4ed2810871
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.3

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