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.

Per-message metadata columns

For source metadata such as Kafka partitions, offsets, or event timestamps, declare nullable metadata columns when constructing a denormalizer and pass values as keyword arguments. Metadata values are repeated across every fan-out row produced by that message; omitted columns become nulls:

with Transcoder.from_proto_file(
    "order.proto", "Order",
    denorm_columns=["name", "items[*].id"],
    denorm_metadata_columns=[
        ("kafka_partition", "int32"),
        ("kafka_offset", "int64"),
    ],
) as tc:
    rows = tc.append_denorm(
        raw_order,
        kafka_partition=partition,
        kafka_offset=offset,
    )
    # rows is the number of output rows produced for raw_order
    flat = tc.flush_denorm()

Use integer epoch milliseconds or microseconds for timestamp metadata, matching the declared timestamp unit. Metadata columns are configured through from_proto_file; YAML configuration does not declare them. Pool.submit and Pool.submit_merged accept the same metadata keyword arguments but remain asynchronous and do not return a row count.

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, **metadata) → int Ingest with denormalization / fan-out and return the output row count
append_denorm_merged(base, custom, **metadata) → int Merge, denormalize, and return the output row count
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.6.1

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.6.1
File
pybufarrow-0.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.6.1-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.6.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pybufarrow-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.6.1-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.5+ x86-64, Linux glibc 2.17+ x86-64 Details
pybufarrow-0.6.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pybufarrow-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.6.1-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.6.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pybufarrow-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.6.1-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.5+ x86-64, Linux glibc 2.17+ x86-64 Details
pybufarrow-0.6.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
pybufarrow-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details
pybufarrow-0.6.1-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.6.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 279.0 MB

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

Download URL pybufarrow-0.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 21.0 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
b9005f462407ef9ca87810bfd2b0c1616f8a45bed291744b6f7c5bc8bf7dd0b0
BLAKE2b-256 checksum
How to use checksums
b5db6a76738eff8a041d812a35b5bcccadb05457405a3c8ec2e728780a01f98b
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
6f22dd08909100f8e75e3c83e8d12903d683c3d832f2b0bfd19924b2ee413033
BLAKE2b-256 checksum
How to use checksums
4fc296162e541e1c6241485c2cd711584f54f29197babe46696953b14767dd04
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp313-cp313-macosx_11_0_arm64.whl
Size 11.3 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3aee7696e280754d430c828bb6b10f17b3bf90454c65b5be29be3ad9deaea392
BLAKE2b-256 checksum
How to use checksums
fa199115f0da479904625afdeba58769443577986e7715a9c5e5fd69c5455b07
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 21.0 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
a8d9df83e57441389c39ca2b055e64d238f12fd6778f85febfa09e7906fecdeb
BLAKE2b-256 checksum
How to use checksums
be1aae3c06fb6a8ed11d968320f9dd44015c83a5212335440fda6fbd788eb914
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
5f0a5593cbb65b00623a394471acf85dd418cfab667f2f014f007e215859b1ed
BLAKE2b-256 checksum
How to use checksums
9989062ab87fc151f00821a3b9ba3f86aa5e4d94e125d1937f58ef1cc870a448
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp312-cp312-macosx_11_0_arm64.whl
Size 11.3 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
10967ef5bf011b6933b92f921d973bc1f5f6ffe388b672d7dfc7a9e21e31695b
BLAKE2b-256 checksum
How to use checksums
35583b68dd6396764998f86549fca67e15e04ac681cd989d12892a05628736b5
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 21.0 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
2f0c1dad96f113503b6f66eeea226a7b0c07d0f44863fe5ad1fa72328ea4b795
BLAKE2b-256 checksum
How to use checksums
2c6bd60ab9a72e0e7c8a59b7133e30b068000d5dab029459151dc6a5042ab73c
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.6 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
3cef21e6da341c7f4294d339f03dd6d471609fb5f16856155ca6b7b46baae9e1
BLAKE2b-256 checksum
How to use checksums
72a10b01feea9b71ea54927c826c39eabe0006e9f5e25bed0915b9ef9568e321
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Size 11.3 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
05ccc8c0d031e313d43ec6619b18a624c649e9017cc52d8de626ad91a0f6789b
BLAKE2b-256 checksum
How to use checksums
5f8bd2dad09eb655c228dd8866608c621ae000ede74f071780b88d1c05f1b196
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 21.0 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
5b5b4a5147d1bdfba5447cced9175fb83b3a3ad4a822bf5752ed8a826a112722
BLAKE2b-256 checksum
How to use checksums
6412a04e1ecd550996b4b3a7b62d29bdc15a69101e1900fcc1e16e6c12e4724c
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
f03802d338988be8c2d8f2087249864cee09c5caaf3c60b3ba9d2295433a01e9
BLAKE2b-256 checksum
How to use checksums
9f1eec5129609927bd1237a4c59b47dfc4aa9cd4fdce96a4fb7c5f7d2c1a4d01
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp310-cp310-macosx_11_0_arm64.whl
Size 11.3 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3cfab2bf5d9329f265b2d1deae8bd45275fd5f9bba08d45efa2e5f2ab45a07d9
BLAKE2b-256 checksum
How to use checksums
d4cb1bd9138080d7de1583750c04c413df28b0d8dfe42db174bd77ed3c418215
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 21.0 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
e9225baa959207b526fb6dd14e7686db9d0ef2fc94a4e9f913a6fa517a16fec6
BLAKE2b-256 checksum
How to use checksums
1ceb05786cbe9118b393ba2de19cd1e030459c0de7637f1ef390ea24db153764
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 23.6 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
1f4af3ea725709a94afe6bb925f3190f020bb3ba0e7dc5ab02a3b9ba842ac1c7
BLAKE2b-256 checksum
How to use checksums
a8610f6cd79393c5e792e73cb74c1fbefd76270c47ddefcda789df89bfb25834
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 Sep 25, 2026.

Transparency log

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

Download URL pybufarrow-0.6.1-cp39-cp39-macosx_11_0_arm64.whl
Size 11.3 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
23c6784fcd16d18aa86906e917d37946de1e93193e831ab28c7a636e42762eed
BLAKE2b-256 checksum
How to use checksums
a6984138b95661eb5093a9c87205d0550b36ea0964cffc7dc7e9cc6e35f02044
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 Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.1 This release

15 release files

0.2.0

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