Skip to main content

Fast Apache Thrift bindings for Python powered by Rust and PyO3.

Project description

thriftrs2

PyPI Python License Rust

A fast, Rust-powered Apache Thrift toolkit for Python.

Features · Quick Start · Documentation · Changelog


About

thriftrs2 brings native Rust performance to Python Thrift workflows through PyO3. It provides an end-to-end toolkit: parse .thrift IDL files, serialize and deserialize structs, and run RPC clients and servers — all with a Python-first API that feels idiomatic.

Status: alpha. The core serialization, IDL parsing, and RPC paths are stable enough for evaluation; the API may still shift before 1.0.

Why another Thrift library?

Existing Python Thrift libraries are pure-Python and carry a serialization bottleneck. thriftrs2 replaces the hot path (parsing, ser/de, RPC framing) with compiled Rust, while keeping the user-facing API in Python where flexibility matters.

Features

Category What's included
IDL parser struct, service, enum, union, exception, const, typedef, include, namespace, throws, annotations, field defaults, extends inheritance
Protocols Binary, Compact, JSON (TJSON field-id format)
Serialization serialize / deserialize for structs; dumps / loads for JSON text
Transports TBufferedTransport, TFramedTransport
RPC client Context-manager based, sync call() with automatic request/response framing
RPC server Multi-threaded (configurable workers), sync handler dispatch, oneway support
Compatibility Reads thriftpy2 JSON envelopes; runs structured benchmarks against thriftpy2

Quick Start

Installation

pip install thriftrs2

Requires Python ≥ 3.9.

1. Load a Thrift file

from thriftrs2 import load

mod = load("example.thrift")
# mod.User       → struct type
# mod.UserService → service type

2. Serialize and deserialize

from thriftrs2 import serialize, deserialize

user = {"id": 1, "name": "Alice", "email": "alice@example.com", "age": 30}

blob = serialize(mod.User, user)
restored = deserialize(mod.User, blob)
assert restored == user

Protocol selection:

from thriftrs2 import ProtocolType

blob = serialize(mod.User, user, proto=ProtocolType.Compact)
restored = deserialize(mod.User, blob, proto=ProtocolType.Compact)

# JSON helpers
from thriftrs2 import dumps, loads
text = dumps(mod.User, user)
restored = loads(mod.User, text)

3. RPC client

from thriftrs2 import make_client, TBufferedTransport, ProtocolType

with make_client(
    mod.UserService,
    "127.0.0.1", 9090,
    TBufferedTransport.transport_type,
    protocol=ProtocolType.Binary,
) as client:
    user = client.call("get_user", user_id=1)

4. RPC server

from thriftrs2 import make_server

class Handler:
    def get_user(self, user_id):
        return mod.User(id=user_id, name="Alice", email="alice@example.com", age=30)

server = make_server(
    mod.UserService, Handler(),
    transport=TBufferedTransport.transport_type,
    protocol=ProtocolType.Binary,
    workers=4,
)
server.serve_forever("127.0.0.1", 9090)

Architecture

 ┌──────────────────────────────────────────┐
 │              Python API                   │
 │  load()  serialize()  make_client()  ...  │
 └──────────────┬───────────────────────────┘
                │ PyO3
 ┌──────────────┴───────────────────────────┐
 │              Rust Core                    │
 │  ┌──────────┐ ┌──────────┐ ┌───────────┐ │
 │  │  Parser  │ │ Protocol │ │   Python   │ │
 │  │  (nom)   │ │ (bin/cmp │ │  bindings  │ │
 │  │          │ │  /json)  │ │            │ │
 │  └──────────┘ └──────────┘ └───────────┘ │
 │  ┌──────────────────────────────────────┐ │
 │  │     Client / Server (tokio)          │ │
 │  └──────────────────────────────────────┘ │
 └──────────────────────────────────────────┘
  • Parser — Nom-based .thrift IDL parser producing an AST
  • Protocol — Binary, Compact, and JSON read/write with correct framing
  • Client/Server — Tokio-powered async I/O behind a sync Python API

Project Structure

thriftrs2/
├── src/
│   ├── lib.rs                  # PyO3 module entry point
│   ├── parser/                 # IDL parser (lexer, AST, grammar)
│   ├── protocol/               # Binary, Compact, JSON ser/de
│   └── python/                 # PyO3 bindings (client, server, types, parser wrappers)
├── python/
│   └── thriftrs2/              # Python package layer
│       ├── __init__.py         # Public API re-exports
│       ├── loader.py           # load(), make_client(), make_server()
│       └── protocol.py         # Python-side protocol helpers
├── examples/                   # Runnable examples & benchmarks
│   ├── example.thrift          # Sample IDL
│   ├── test.py                 # Struct round-trip
│   ├── test_protocols.py       # Protocol comparison
│   ├── client_example.py       # RPC client
│   ├── server_example.py       # RPC server
│   ├── ocr_client.py           # Larger service client
│   ├── ocr_server.py           # Larger service server
│   ├── benchmark.py            # Serialization micro-benchmark
│   └── benchmark_all.py        # Full matrix: ser/de + RPC vs thriftpy2
├── python/tests/               # pytest + cargo test suites
├── docs/USER_GUIDE.md          # Detailed user guide
├── Cargo.toml                  # Rust crate manifest (version source of truth)
├── pyproject.toml              # Python build config (maturin)
└── CHANGELOG.md                # Keep a Changelog

Performance

Results from benchmark_all.py (500 ser/de, 1K RPC iterations, 50 warmup, 3 runs, on AMD Ryzen 9950X3D). All comparisons vs thriftpy2.

Struct deserialization — all protocols

Deserialize + to_dict(), ops/s (higher = better):

Shape Wire bytes (Bin/Cmp/JSON) Binary Compact JSON JSON vs tp2
simple 21 / 11 / 36 B 1,610,845 1,501,299 1,155,703 3.3×
complex 641 / 460 / 986 B 233,622 227,657 113,934 2.4×
large 8.0 / 6.0 / 11.5 KB 18,576 18,619 8,199 3.0×
xlarge 65.8 / 47.6 / 100.5 KB 2,072 2,111 796 2.2×

Binary and Compact are neck-and-neck; Compact payloads are ~30% smaller. JSON deserialization uses a direct serde_json::Value → Python conversion path that skips the intermediate ThriftValue tree.

JSON serialize / deserialize — vs thriftpy2

Shape Payload Serialize vs tp2 Deserialize vs tp2
simple 36 B 3,108,918 ops/s 10.1× 1,143,568 ops/s 3.3×
complex ~1 KB 131,788 ops/s 5.6× 76,620 ops/s 2.4×
large ~11 KB 7,155 ops/s 2.9× 8,566 ops/s 3.0×
xlarge ~100 KB 776 ops/s 2.9× 646 ops/s 2.2×

Serialization runs 2.9–10.1× faster. Deserialization leads 2.2–3.3× across all payload sizes, reversing the pre-optimization gap at large payloads.

RPC: get_batch (~11 KB) — throughput (req/s) and speedup

Protocol Transport Conc=1 Conc=4 Conc=16 Conc=64
Binary Buffered 13,233 (547×) 15,009 (155×) 11,739 (31×) 10,393 (7.1×)
Binary Framed 15,480 (1.36×) 13,548 (1.59×) 12,221 (1.69×) 10,750 (1.40×)
JSON Buffered 1,335 (1.15×) 1,457 (1.33×) 1,147 (1.22×) 1,161 (1.33×)
JSON Framed 1,454 (1.25×) 1,442 (1.35×) 1,209 (1.26×) 1,158 (1.36×)

Values are throughput (requests / second) with speedup vs thriftpy2. All rows include thriftpy2 comparison (both Buffered and Framed transports). Binary Framed achieves the highest single-connection throughput for large payloads. Under concurrency, both Buffered and Framed Binary deliver ~10K+ req/s sustained. See the full matrix including get_simple, get_complex, save_complex, and save_batch by running:

# CI smoke (fast)
python examples/benchmark_all.py --ci-smoke

# Full matrix
python examples/benchmark_all.py \
    --ser-iterations 500 \
    --rpc-iterations 1000 \
    --warmup 50 \
    --rpc-concurrency 1 4 16 64 \
    --runs 3

Known Limitations

These are tracked gaps, not permanent design decisions:

  • JSON output envelope — Reads thriftpy2 JSON envelopes but does not yet emit them
  • Exception types — Declared Thrift exceptions are decoded and raised as RuntimeError rather than dedicated Python exception classes
  • Multi-file namespacesinclude resolves types across files but does not yet enforce a full scoped namespace model for same-name types
  • Benchmarks — Smoke mode is suitable for CI; production-grade numbers should use --runs 3 with adequate warmup

See open issues for the current backlog.

Development

# Setup
pip install maturin pytest
maturin develop --release

# Run tests
python -m pytest -q
cargo test
cargo check

# Rebuild after Rust changes
maturin develop --release

Contributing

Contributions are welcome. The project is early-stage, so starting with an issue to discuss scope is recommended before investing in large changes.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes and add tests
  4. Run python -m pytest -q && cargo test
  5. Open a pull request

License

MIT — see LICENSE.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

thriftrs2-0.2.1-cp314-cp314-win_amd64.whl (598.2 kB view details)

Uploaded CPython 3.14Windows x86-64

thriftrs2-0.2.1-cp314-cp314-manylinux_2_28_x86_64.whl (809.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

thriftrs2-0.2.1-cp314-cp314-manylinux_2_28_aarch64.whl (787.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

thriftrs2-0.2.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

thriftrs2-0.2.1-cp313-cp313-win_amd64.whl (601.8 kB view details)

Uploaded CPython 3.13Windows x86-64

thriftrs2-0.2.1-cp313-cp313-manylinux_2_28_x86_64.whl (812.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

thriftrs2-0.2.1-cp313-cp313-manylinux_2_28_aarch64.whl (791.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

thriftrs2-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (812.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

thriftrs2-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (791.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

thriftrs2-0.2.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

thriftrs2-0.2.1-cp312-cp312-win_amd64.whl (600.4 kB view details)

Uploaded CPython 3.12Windows x86-64

thriftrs2-0.2.1-cp312-cp312-manylinux_2_28_x86_64.whl (811.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

thriftrs2-0.2.1-cp312-cp312-manylinux_2_28_aarch64.whl (790.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

thriftrs2-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (810.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

thriftrs2-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (790.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

thriftrs2-0.2.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

thriftrs2-0.2.1-cp311-cp311-win_amd64.whl (594.7 kB view details)

Uploaded CPython 3.11Windows x86-64

thriftrs2-0.2.1-cp311-cp311-manylinux_2_28_x86_64.whl (804.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

thriftrs2-0.2.1-cp311-cp311-manylinux_2_28_aarch64.whl (784.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

thriftrs2-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (803.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

thriftrs2-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (783.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

thriftrs2-0.2.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

thriftrs2-0.2.1-cp310-cp310-win_amd64.whl (594.0 kB view details)

Uploaded CPython 3.10Windows x86-64

thriftrs2-0.2.1-cp310-cp310-manylinux_2_28_x86_64.whl (803.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

thriftrs2-0.2.1-cp310-cp310-manylinux_2_28_aarch64.whl (783.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

thriftrs2-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (803.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

thriftrs2-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (783.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

thriftrs2-0.2.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

thriftrs2-0.2.1-cp39-cp39-win_amd64.whl (595.7 kB view details)

Uploaded CPython 3.9Windows x86-64

thriftrs2-0.2.1-cp39-cp39-manylinux_2_28_x86_64.whl (805.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

thriftrs2-0.2.1-cp39-cp39-manylinux_2_28_aarch64.whl (785.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

thriftrs2-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (805.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

thriftrs2-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (785.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

thriftrs2-0.2.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file thriftrs2-0.2.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: thriftrs2-0.2.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 598.2 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thriftrs2-0.2.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 18ecb87e1406892ff5998ab694280f1f933f0f90217680766b7ce61d64dd0ff8
MD5 4a265739bfe89136ef4732881a8773d6
BLAKE2b-256 690caf9faed5803fb155fcd4755937bda58b4854e390fa4574c43242f1efbe2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp314-cp314-win_amd64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 137f2ff45e72305f0cb73abbd93a760320cc9fbf99c08cbb3778e73039d3fe05
MD5 2b1a5e38b869a35a031f2fcf919705e3
BLAKE2b-256 3cb75b3d2648ee80dfa2a3923daf8f4cbb76a4872dcb07174fcc56120d2699c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e51ed43f5ccd447ed91df8c81b92d5206e62f0a2e815cc56278da9bd317941d6
MD5 d847f0cac2a7aaf447cf07bdd7f1ae62
BLAKE2b-256 d992c2bc45fe97d386966c4cf99f61bf076abf9061e0a48204a1a80e4f794776

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp314-cp314-manylinux_2_28_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 82f3c9675313a86c3ea71eeefe48d05eacb15feed8b84c4767ba4fdfaa531e95
MD5 b967115329eb94274e0340713b4db705
BLAKE2b-256 8c47bdd0976208e8770fd44a56c428f9377eb7948d5b9698af0837ca23e0e8a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: thriftrs2-0.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 601.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thriftrs2-0.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 60475b9446b1a015da9dba94f79d819d3f19fbc2eadffbd3833ac3b9d1e1f5df
MD5 b0c9c434f5ffefd63ba0cf5ea79076f6
BLAKE2b-256 516c9337295a1dcecc5aefa559a5b3f770660a8cd3e3903fc79c5b00056a5a8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp313-cp313-win_amd64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3c419087b921b674583fd7ea5f83490c8b036a0ceccd2946cedd4f4780bdab64
MD5 4a39a799c1574c1067956d5c4c9a5349
BLAKE2b-256 ca07cc345c5c1f6ac3c820548f9449e66131cd42041eb45c145d739111568c1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a8bbe9dc6047ca535381c82fc71b3ef2fd5233a2f39320b19585d6abe9f6a354
MD5 53bf94914f7ac53ff35b465e09fb4c0e
BLAKE2b-256 407e7750e700e360a1bf0d743e58f6b5fa12692bed8358be39989044b5c31438

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6b7efd6d9876fb0a309eeecbf025c582b0e3894d2b1e93b55c158f3de8b10de
MD5 4268aab9ca586babec56d18b99afcbb3
BLAKE2b-256 22c047c2872ad9adffa73f32093af4f2c4c00e68fa93d550d6d6afa589721feb

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 47a121239502d694ed30c9a5fd5144e3d29aadc149bddb3b61ab4f50eaa50ba1
MD5 5216d3ec509b99d67c8dae836260313a
BLAKE2b-256 f5d7e8062673ccfb206993f4644ce8999918501863252283f2ecd988fd16e1a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 97650679317723e5fba5bf7924dc1badfe3540d81f7a7a5118572d5326c27e6d
MD5 7ebd00dda4a7a641329f3bf20480dd7f
BLAKE2b-256 8e97d571fe3b60c4eeb14a7cf0b1cb6c6e51f32f915be5a43fcbcc7efb2c4b46

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: thriftrs2-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 600.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thriftrs2-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 23501e3b62dd9d2164b0f34e24c536ddb1658e91dbf20a9fabd86266c5959c1c
MD5 b32ed6d3c25c6776a11d22d5b7205f96
BLAKE2b-256 813566ce0233bb620d66756d03296dc8ea09719483345611b1a3bb010f54d477

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp312-cp312-win_amd64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ba34fdf7541c4e72f84da6feab9b623669bb7b9a3a2565391780c8ff57079975
MD5 92c1066ae46723b2f112c883ceba063f
BLAKE2b-256 8fbf2f106c5daaeba3a71cacc3f8dae6c01d1a20181ab998c30c50202ba9c20c

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5e34f5be994eed7827390cfe21ce9eb8589ac992ee93c8321fb56c6668b1812c
MD5 41e74f834f5f6acb1803bcf0a2ee3c61
BLAKE2b-256 d9af808361f47b83fdca15b6705acc5c91caa794ea26cd7a711e2ddd73c565f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c8f17c87cc86c9b77ce2582ecbbff0c315bce052c80c73664bf5eba44c8afe47
MD5 574cbead4c010f80d30a3570959545a5
BLAKE2b-256 8efac02a5e3b43548f63c354caf2cc4a0da6a5b020d31fabc918225a5b3fe827

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e7cb014694a7729b14fbc0b8fe51515d168d092aea46dd61ac4db872ae896fc7
MD5 023e386757c853189b21bbec89b4f7cc
BLAKE2b-256 e8dd5bf671c959243fbd9589a2519178efbb2673efd4552ba3f847ba70ad8898

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 7b9c30a0bc509654eb9b64575cc076c5f393526fd1d3b628ad76078c5393465f
MD5 60600d546fd6fdd62ea345b7e87131c7
BLAKE2b-256 22dc2dacd62a93b65cf60b6edd972de48bec3f326db40df7bda7e9e02d362fe9

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: thriftrs2-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 594.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thriftrs2-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e4c4989a6269b15c5e19d1307a1e13e7d20143d0382c78945c80d719b45ec1a6
MD5 4590e0971c6f3183a86950696a28cdfa
BLAKE2b-256 35b5bbe71a84037196ccf625fbb33f24da3679f9751d56d8d90b6a3dce8070a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp311-cp311-win_amd64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd298f456069043b32e0b6a30a5b4b81215bd809afffe6d53fe9f516ce1eda21
MD5 94964622ed4847d8e3082c5134068c20
BLAKE2b-256 1352e470b7d5d86e85c860d4f3c62e051d875ead9a2d53b4b6ca5adbf61ca660

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6550122a824a341e20c239be7a24df41c2cbef3a484f071d1ca983bcfb26860e
MD5 c1135f50819f0cb0ccb6f3a730c45e86
BLAKE2b-256 175bd6802b07bbbd6e42a0f8d98a5d135795f30cd01b78cae02b1cf1d7209489

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bbde8f974e36cb794f46f177bf741578e7d89b96ae20da168e9c44a91780d8d7
MD5 7cab2d333eb6e0ad6aa22c7e36809d2c
BLAKE2b-256 a1e5253311fc598ec834efd492a03dde12bb23e8de39f7b74057a15a84226819

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4305e0da422be998c2d62f44d4049c4521771e95a2411e0acd687d4d0318d0ed
MD5 b2f4798b65ef96c745b87ee2d355388b
BLAKE2b-256 49c253a21aa694fab4267fbb6e36b6d17079a1d0b3b58523832c2d4b1c0a0bf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 f82c082c766dfbd3d28e0a190a76a6f4e4582a6d50c9965e20009b6c4b62377d
MD5 f1e67cdb4e9320885bd9377a800c5fcf
BLAKE2b-256 a457a56cc3c480fa60babd339c1c50bea4053a1291d7ff681b8aee826f39086c

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: thriftrs2-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 594.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thriftrs2-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2d6b1195203ab4f7de5b1330a1848eb9657d5879b01423b65555167946d41892
MD5 ef5ae5fbfde6b290212c5bcfe6f9db4d
BLAKE2b-256 06700e7c5c21e0201ac533b9b48e695b52d107629563eb5bd85ee5724133c722

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp310-cp310-win_amd64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 11b618ded5f15c3e12f3ed2aa5d05365fa52d9f6fccdbe97e2f0691a9f629c13
MD5 d588357d77dd12aec737a1061695a10b
BLAKE2b-256 4681cfc4c1ff35e193a388814c96a40db448322665d36a9159db28c641ee6bb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b6c655b1e33aec7886a166883063ba9b6314ccb01f7ecbca26999a1698fa3d7a
MD5 9b20d73c0c5808944c4cf79a91b19c54
BLAKE2b-256 4c2d040d7a664f966634201995a8f9c96bb270fc3ec01ebeff83e0c36bf33497

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2fccbc84d0ff389278f6de04ae9e255f940b6eab2b553e6910786944de27af7a
MD5 afb191e742879e9b90a496e987109b9c
BLAKE2b-256 7782a3d93792f7a1ab2bc6699e64901851b3cac3386281a399e03e18132fd675

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e6b928ca95796e61801ce55e32808fd3a9edc6491f7bd12e922c392f8bdd9e27
MD5 9745636db441319fe3fed3351fe36024
BLAKE2b-256 ea5095d3fe07c6b3d8228aab68ef4cebb64ff65fad75d7811d12b6069eed0d5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 ed3bf6e552b6ebe849e547403c74e49b5081a853fa72c8c1621db35e22681b05
MD5 4cd233c08a72e12de277700e6c7e7363
BLAKE2b-256 b19eafd8bab88b70d6f1493730704f0c19367eb0dcc479ed87195bca499f744b

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: thriftrs2-0.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 595.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thriftrs2-0.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 73d44615f158eddda222fe1da726d567d7740034ee2df6225ab58b2066f19c35
MD5 4c37ea155e60cc170fc5c09fa3db756f
BLAKE2b-256 8f991a747710cc9ab3a5e516530903d12b8b2355b0a112e2429ea9f123d3f256

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp39-cp39-win_amd64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75ef923447a909ee728036af32ece91bf529cbad9fef12b11dc297717ab7dc69
MD5 ee63f74915560b2569e2e529bfbd0c31
BLAKE2b-256 4aed375daa145167e3862513138a5cac2422d3acaf1bf792a9ddb18f477926f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 531fceb8ac0a865fb939ad9865cd7c23101befc0b76049df9c1b687c60538a77
MD5 d925b489bbdb2243d2aa5bd42162f4b1
BLAKE2b-256 688e5fbf104ed151fcfd44ec57770a2744f8a5221e2eb9ad292a7bec445e5629

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp39-cp39-manylinux_2_28_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8c25f7694633dc668eee61199fdde6b5c82b6a8a6a023410ee1e47e5ad58daf
MD5 eec60d0eb6d5265599e476d8d389effc
BLAKE2b-256 8bec302db6900c421808fcf63d8be2d22c6ec7fa7fe1da10ab35c32afbdace81

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6454c58b3c6b42ea30688b36ae9723db3f9c88721be792ce052b02f39bdd752a
MD5 64de379db917880beeb8169ede4ac02a
BLAKE2b-256 f3ab6fdb2dda179cf005b9a229496933db42015094ee802ae88cbe910dd5e3ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thriftrs2-0.2.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for thriftrs2-0.2.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 e6e1c29f2fc55b956dd8e3b6d28db2382c1daaa2237dbde5153a1fa06755ac33
MD5 e066fe51322a7487d105059f910809ae
BLAKE2b-256 dfc00772d0a58e66ea27c7f04529a4b8e3033973dd435b7ae32ebd13f56e22cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for thriftrs2-0.2.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on CherryLemon/thriftrs2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page