Skip to main content

pybufarrow

Turn raw protobuf bytes into Apache Arrow RecordBatches — without deserializing, without codegen, without copying data.

pybufarrow wraps bufarrowlib, a Go library that transcodes serialized protobuf messages directly into Arrow columnar format using zero-copy memory sharing via the Arrow C Data Interface. Give it a .proto file and a stream of raw bytes; get back a pyarrow.RecordBatch you can hand straight to Pandas, Polars, DuckDB, or write to Parquet.

It's fast: the underlying engine processes ~300K messages/sec on production-shaped data — 39% faster than hand-written Arrow builders — while using 57% fewer allocations per message.

When to use pybufarrow

  • Kafka / Pub-Sub consumers that receive protobuf-encoded messages and need them in columnar format for analytics, dashboards, or data lake ingestion.
  • ETL pipelines where protobuf is the wire format from upstream services and the destination is Parquet, Delta Lake, or a columnar database.
  • Streaming into DuckDB — denormalize protobuf messages into flat Arrow RecordBatches and append them directly to DuckDB. Aggregating pre-flattened data is orders of magnitude faster than querying nested structures.
  • Ad-tech / real-time bidding — denormalize nested messages like OpenRTB BidRequests into flat, query-friendly tables with a single YAML config.
  • Data science notebooks — skip the proto → dict → DataFrame dance. Go straight from wire bytes to Arrow-backed DataFrames with type fidelity.
  • Feature stores / ML pipelines that ingest protobuf event streams and need low-latency materialization into Parquet or Arrow IPC.

Installation

pip install pybufarrow

Or from source (using uv):

# Build the shared library
cd bufarrowlib/cbinding && make build

# Copy into the Python package
cp cbinding/libbufarrow.so python/pybufarrow/

# Install
cd python && uv sync

Quick Start

from pybufarrow import HyperType, Transcoder

# HyperType compiles a high-performance parser from your .proto definition.
# Share one instance across all transcoders — it's thread-safe.
ht = HyperType("events.proto", "UserEvent")

with Transcoder.from_proto_file("events.proto", "UserEvent", hyper_type=ht) as tc:
    # Feed raw protobuf bytes — no deserialization needed
    for raw_bytes in kafka_consumer:
        tc.append(raw_bytes)

    # Flush to a zero-copy pyarrow RecordBatch
    batch = tc.flush()

# Use it anywhere Arrow is accepted
df = batch.to_pandas()
import duckdb
duckdb.sql("SELECT * FROM batch WHERE event_type = 'purchase'")

Proto Files with Imports

import_paths are the root directories searched for every import "..." statement inside a .proto file — and the proto_path/proto_file argument itself must also be given relative to one of those roots, the same way protoc -I <root> <relative/path.proto> works. Passing an absolute path as proto_path will fail to resolve, even if import_paths is set correctly.

Real-world example — a shared proto repository laid out one directory per package:

proto-specs/
└── docs/
    ├── OrganizationManager/
    │   └── Organization.proto      # imports google/protobuf/struct.proto
    └── Campaign/
        └── Campaign.proto          # imports OrganizationManager/Organization.proto

The shared docs/ directory is the import root; every .proto path — including cross-package imports like Campaign.proto's reference to Organization.proto — is given relative to it:

from pybufarrow import HyperType, Transcoder

import_paths = ["/path/to/platform-specs/docs"]

ht = HyperType(
    "OrganizationManager/Organization.proto",  # relative to import_paths, not absolute
    "Organization",
    import_paths=import_paths,
)

with Transcoder.from_proto_file(
    "OrganizationManager/Organization.proto",
    "Organization",
    import_paths=import_paths,
    hyper_type=ht,
) as tc:
    for raw_bytes in kafka_consumer:
        tc.append(raw_bytes)
    batch = tc.flush()

Recursive well-known types

The example above imports google/protobuf/struct.proto. Struct, Value, and ListValue are mutually recursive — Struct holds a map of Value, and Value reaches back to Struct and ListValue — so they have no finite Arrow struct representation. They arrive as a single string column holding the canonical protojson encoding, which DuckDB can query with the json_* functions:

duckdb.sql("SELECT json_extract_string(settings, '$.mode') FROM batch")

protojson output is not byte-stable across processes, so compare these columns semantically rather than by string equality, and do not content-hash them. An unset google.protobuf.Value becomes a null.

A message type that recursively contains itself is rejected when the transcoder is constructed, with an error naming the type and field path.

Streaming Batches

Process millions of messages without holding everything in memory. transcode_batch yields fixed-size RecordBatches as an iterator:

from pybufarrow import transcode_batch

# Yield 122880-row batches from a message stream
for batch in transcode_batch("events.proto", "UserEvent", message_stream, batch_size=122880):
    # Write each batch to a Parquet dataset, push to a queue, etc.
    writer.write_batch(batch)

Collect everything into a single Arrow Table, or write directly to Parquet:

from pybufarrow import transcode_to_table, transcode_to_parquet

# Arrow Table — ready for Polars, DuckDB, or any Arrow-native tool
table = transcode_to_table("events.proto", "UserEvent", messages)

# Straight to Parquet — no intermediate DataFrame
transcode_to_parquet("events.proto", "UserEvent", messages, "events.parquet")

Denormalization

Protobuf messages are often deeply nested — repeated fields, nested sub-messages, maps. Querying nested Arrow structs is painful. pybufarrow can flatten (denormalize) nested messages into wide, query-friendly rows with fan-out on repeated fields.

With a YAML config

# denorm.yaml
proto_file: order.proto
message_name: Order
denorm:
  columns:
    - name                      # top-level scalar
    - items[*].id               # fan-out: one row per item
    - items[*].price
    - seq
with Transcoder.from_config("denorm.yaml") as tc:
    for raw in order_stream:
        tc.append_denorm(raw)

    flat = tc.flush_denorm()
    # An order with 3 items produces 3 rows, each with the parent's `name` and `seq`

Programmatic column selection

ht = HyperType("order.proto", "Order")

with Transcoder.from_proto_file(
    "order.proto", "Order",
    hyper_type=ht,
    denorm_columns=["name", "items[*].id", "items[*].price", "seq"],
) as tc:
    tc.append_denorm(raw_order)
    flat = tc.flush_denorm()
    print(flat.to_pandas())
    #   name  id     price  seq
    #   acme  sku-1  9.99   1
    #   acme  sku-2  4.50   1

Empty repeated fields produce one row with nulls (left-join semantics), so you never lose parent records.

Why denormalize?

Nested protobuf structures are great for wire transport but terrible for analytics. Querying nested Arrow structs or repeated fields requires unnesting at query time — which is expensive and makes aggregations slow. The denormalizer does the fan-out once at ingest time, producing flat columns that DuckDB, Pandas, and Polars can aggregate at full speed:

import duckdb

con = duckdb.connect("pipeline.duckdb")

# Create table from the first denormalized batch (schema inferred from Arrow)
con.execute("CREATE TABLE IF NOT EXISTS events AS SELECT * FROM flat_batch LIMIT 0")

# Append denormalized RecordBatches — zero-copy via Arrow
con.execute("INSERT INTO events SELECT * FROM flat_batch")

# Standard SQL on simple, flat columns — orders of magnitude faster than nested
con.sql("""
    SELECT service_name, count(*) as events, avg(latency_ms)
    FROM events
    GROUP BY service_name
    ORDER BY event_tm DESC
""")

Merging Multiple Protobuf Messages

When your pipeline enriches a base message with sidecar data (e.g., a bid request plus server-side metadata), append both in a single call:

with Transcoder.from_proto_file(
    "bidrequests.proto", "BidRequest",
    custom_proto="server_meta.proto",
    custom_message="ServerMeta",
) as tc:
    tc.append_merged(bid_request_bytes, server_meta_bytes)
    batch = tc.flush()
    # The resulting schema includes columns from both messages

Parallel Processing with Clone

clone() creates an independent transcoder that shares the same compiled schema and HyperType. Use it to fan out across threads:

import concurrent.futures
from pybufarrow import HyperType, Transcoder

ht = HyperType("events.proto", "UserEvent")
base_tc = Transcoder.from_proto_file("events.proto", "UserEvent", hyper_type=ht)

def process_partition(partition):
    with base_tc.clone() as tc:
        for msg in partition:
            tc.append(msg)
        return tc.flush()

with concurrent.futures.ThreadPoolExecutor(max_workers=4) as pool:
    batches = list(pool.map(process_partition, partitioned_messages))

Parquet I/O

Write Arrow data to Parquet and read it back — useful for materializing transcoded streams to disk:

with Transcoder.from_proto_file("events.proto", "UserEvent", hyper_type=ht) as tc:
    for msg in messages:
        tc.append(msg)

    # Write directly to Parquet (no intermediate pyarrow step)
    tc.write_parquet("events.parquet")

    # Read back as a RecordBatch, optionally selecting columns by index
    batch = tc.read_parquet("events.parquet", columns=[0, 1, 3])

Architecture

Python user code
    ↓  Pythonic API
pybufarrow (ctypes)
    ↓  C ABI via Arrow C Data Interface
libbufarrow.so (CGo shared library)
    ↓  hyperpb TDP parser (2–3× faster than generated code)
bufarrowlib (Go)
    ↓  zero-copy Arrow record batches
pyarrow

No gRPC. No protoc codegen. No serialization round-trips. The Arrow C Data Interface means RecordBatches cross the Go→Python boundary without copying memory.

API Reference

Core Classes

Class Purpose
Transcoder Ingests raw protobuf bytes, flushes Arrow RecordBatches
HyperType Compiles a high-performance parser from a .proto file. Thread-safe, shareable across transcoders
BufarrowError Raised on invalid protos, missing configs, use-after-close, etc.

Transcoder Constructors

Constructor Use when
Transcoder.from_proto_file(proto, msg, ...) You have a .proto file
Transcoder.from_config(path) You have a YAML config with denorm rules
Transcoder.from_config_string(yaml) Same, but the YAML is a string

Transcoder Methods

Method Description
append(data) Ingest raw protobuf bytes (requires HyperType)
append_merged(base, custom) Ingest two protobuf messages as one row (requires custom_proto)
append_denorm(data) Ingest with denormalization / fan-out (requires HyperType + denorm plan)
flush() → RecordBatch Flush accumulated rows as a zero-copy Arrow RecordBatch
flush_denorm() → RecordBatch Flush denormalized rows
write_parquet(path) Write buffered data to Parquet
read_parquet(path, columns=None) Read Parquet file back as a RecordBatch
clone() → Transcoder Create an independent copy for parallel use
schema Arrow schema (cached)
field_names List of field name strings

Batch Helpers

Function Description
transcode_batch(proto, msg, messages, batch_size=1024) Iterator of fixed-size RecordBatches
transcode_merged_batch(proto, msg, messages, batch_size=1024) Same, for merged (base, custom) message pairs
transcode_to_table(proto, msg, messages) Collect all messages into a single pyarrow.Table
transcode_to_parquet(proto, msg, messages, path) Transcode and write directly to Parquet

Requirements

  • Python >= 3.9
  • pyarrow >= 14.0
  • libbufarrow.so / libbufarrow.dylib shared library (built from Go source via make build in cbinding/)

License

Apache-2.0

Release files for pybufarrow 0.2.0

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

Built distributions (wheels)

Table of built distributions (wheels) for pybufarrow 0.2.0
File
pybufarrow-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.2.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details
pybufarrow-0.2.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pybufarrow-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.2.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details
pybufarrow-0.2.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pybufarrow-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.2.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
pybufarrow-0.2.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pybufarrow-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.2.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details
pybufarrow-0.2.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
pybufarrow-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details
pybufarrow-0.2.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 271.9 MB

Release files / pybufarrow-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pybufarrow-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 20.4 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
0e375aed69002d2cc8aa1f8bdfc5eadd31754361fb7ea23d270f1db702c8bbc7
BLAKE2b-256 checksum
How to use checksums
04204a4a37653be0b894f0dd7737555987d0c9efa5dac2ec67f53b24f2600973
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pybufarrow-0.2.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.0 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
c03f9fb5782f081455fa7a590aac40239723be7148eef73817ae8980aa4aa0ca
BLAKE2b-256 checksum
How to use checksums
7ea55eb0ccde96ca1afae1a6e0f6852c038b32761eea0cb5ac7780b464e64325
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL pybufarrow-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Size 11.0 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f0e76ce915f3544a8a1c444a4800f0a26b4633861c3482eeb7767d5c4a586e9f
BLAKE2b-256 checksum
How to use checksums
6bdc9223e4333949205ebf355589e8805d81aecdf77d7eb5e59d5a65fc5aa712
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pybufarrow-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 20.4 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
0caf8f0dd30dc7c3bda9e27278b734f4350fca867727e7cd177db7b1ff70239a
BLAKE2b-256 checksum
How to use checksums
69cf7d1723538b1ed448da75a00476b740607024532f3cb4439d7a9018c2cd29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pybufarrow-0.2.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.0 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
84e7d1bc5f968c1e98ca553faedd07329cd6466b2548445ac27b9d55dbb0146e
BLAKE2b-256 checksum
How to use checksums
92499f5c9e0580d211b5e0ebb80864cda8d27ddc0cffb512c6a3f7ca74ac4ebd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL pybufarrow-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Size 11.0 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e27b4ed79d24301fc9b97b6f2f1dedf2596cefb7a3444c8c7933345cf2c51fee
BLAKE2b-256 checksum
How to use checksums
4536fa1ee3a436024b04f0d287ca39bd1191e4fded1a497b6904f1d1b2171c56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pybufarrow-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 20.4 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
4c61e3340484ba000bd1358187fec8f8d8f4832346d232e9e61ca8221db591b8
BLAKE2b-256 checksum
How to use checksums
541fc2ce686c12419b712d4cf6722f6ff9b3fe3882ad898e31a7e867cd9db835
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pybufarrow-0.2.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.0 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
68f0b6a5fd02b64a21ff829e8d13744d2aa337af7ef0cdf3c7da080286ad5e34
BLAKE2b-256 checksum
How to use checksums
db668fb9ccd0431696bcfa536e87f6d9714557eb5dc7d0ad079fb9ae700f37a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL pybufarrow-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Size 11.0 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
31b2c308fcc5c7fdbbcdfa9f18f821c04463da2f70fec5b80c5bb5f9724d8dd8
BLAKE2b-256 checksum
How to use checksums
cd9bfe2f83e94ec71dfb300b047edf80a4e034823b1bb30e808d087147b9d2cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pybufarrow-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 20.4 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
e6b3213e80ac50be1942c210630f77edb4e123fa21cda6001528c0f3d6ad4b83
BLAKE2b-256 checksum
How to use checksums
e2b99c4c858dfea500625e19ddfbb936223457ae33ea4eeeb682e8008ddab0f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pybufarrow-0.2.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.0 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
8ad82fcc549512c548b8c7ed3330c46ce83b7251137d641a20d56e05b2d8256e
BLAKE2b-256 checksum
How to use checksums
d1d8393132371704f179bea7a05942b84dafc091fc4b352b7745d40407cb8eb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL pybufarrow-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Size 11.0 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
225f4347e1be05ccb6515c13f0600281060e28e7f9a4559a63896ecd34597dc9
BLAKE2b-256 checksum
How to use checksums
0de3cfbb6c55dbf7ed8d9d60f3bed9d7c9eadf8bcde7c2eb21b44af63bbd3af9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pybufarrow-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 20.4 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d17f5b285d40350a31b0aa443e6bddad0fb5b483611e763dfe613e0f6d310e1c
BLAKE2b-256 checksum
How to use checksums
3a75f57450e021d3c8ef7ab3522ca5fbbb0fcfe6e3b8f77564ebff1531099c18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pybufarrow-0.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.0 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
ab2e4ad95418cb162f6ba1762b08880aeef13c15217b2a5809235fcdf03cd460
BLAKE2b-256 checksum
How to use checksums
38a9a37bec4d76785af4a705649c0bfe00781f9aaeeee38123d4f103adc55eaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / pybufarrow-0.2.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL pybufarrow-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Size 11.0 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4a2ecf50f6e5635429f27000e4c98720c5e070770750f1730157b97c0a197670
BLAKE2b-256 checksum
How to use checksums
096f0d71853589a3dc18946f0daac3cdb22ded2e624e3c0b6a5d111de1779f50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.1

15 release files

This release

0.2.0 This release

15 release files

0.1.0

15 release files

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