Skip to main content

python-pptx-rs

Rust-powered, python-pptx-compatible library for creating, reading, and updating PowerPoint (.pptx) files.

  • Drop-in compatible public API: pip install python-pptx-rs, then import pptx_rs as pptx
  • Rust core (quick-xml + zip) via PyO3, single abi3 wheel for Python 3.10-3.14
  • O(1) shape-id assignment and relationship lookup (quadratic in python-pptx)
  • Untouched parts round-trip byte-exactly

Benchmarks

1000 slides x 10 textboxes, macOS arm64, median of 3 (benches/bench_vs_python_pptx.py):

workload python-pptx python-pptx-rs speedup
open 85.0ms 8.9ms 9.5x
open + traverse all text 316.2ms 73.5ms 4.3x
traverse (pre-opened) 227.8ms 10.4ms 21.9x
open + 1 edit + save 199.3ms 48.8ms 4.1x
add 500 textboxes to one slide 191.0ms 10.8ms 17.7x

Compatibility

python-pptx's own behave feature suite runs against python-pptx-rs — see tests/compat/README.md for the current matrix (75 scenarios passing; all remaining gaps are unimplemented APIs, not behavioral divergences).

Development

Requires Rust (stable), uv, and for the compatibility suite a python-pptx checkout at ../python-pptx.

uv sync
uv run maturin develop --uv
uv run pytest  # includes Python coverage (fails under 80%)

Rust coverage (merges cargo test with pytest run against an instrumented build, since the PyO3 binding crate is only exercised through Python):

cargo install cargo-llvm-cov
source <(cargo llvm-cov show-env --export-prefix)
cargo llvm-cov clean --workspace
cargo test --workspace
uv run --no-sync maturin develop --uv
uv run --no-sync pytest --no-cov
cargo llvm-cov report --fail-under-lines 80

Metadata

Release files for python-pptx-rs 0.0.1

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

Source distribution (sdist)

Source distribution for python-pptx-rs 0.0.1
File Size Uploaded
python_pptx_rs-0.0.1.tar.gz 49.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for python-pptx-rs 0.0.1
File
python_pptx_rs-0.0.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
python_pptx_rs-0.0.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.10 abi3 macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details

Total release size: 4.8 MB

Release files / python_pptx_rs-0.0.1.tar.gz

Download URL python_pptx_rs-0.0.1.tar.gz
Size 49.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c9c4e611d684ff7c04e86f0035ab87d5f1b18848903b835468864e466d4b8d68
BLAKE2b-256 checksum
How to use checksums
2a443dddc61af364fb96b93657370fb4068a8234139d4a0852940562f05327c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 5, 2026.

Transparency log

Release files / python_pptx_rs-0.0.1-cp310-abi3-win_amd64.whl

Download URL python_pptx_rs-0.0.1-cp310-abi3-win_amd64.whl
Size 807.8 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c37d4d40134bb765b673377ff27974f04b497f121ea1e37ee2ae82e19c5e7a57
BLAKE2b-256 checksum
How to use checksums
069bb3b7256e294b608aa86baff2a7e667dce4a05b098c47176dda856c37f5a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 5, 2026.

Transparency log

Release files / python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
a1066e653f3b023dc4d2e26644be37efe3b2c72565b698900b2eadbf756ee588
BLAKE2b-256 checksum
How to use checksums
4ec954c08118cf719fcfdc17f0b7421533a320d0e6f87fac7d228349c9b340e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 5, 2026.

Transparency log

Release files / python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.0 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
7291bb384ccc7699490cc7d9a3e4aaddece7454e52de23eaa07e88eb6ac5d129
BLAKE2b-256 checksum
How to use checksums
8fe2e4267a84e88afec3cf37406c7999360b7596172ba63b3f59b86bfe9e51e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 5, 2026.

Transparency log

Release files / python_pptx_rs-0.0.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL python_pptx_rs-0.0.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 1.8 MB
Tags CPython 3.10 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
80e5c7ee1ebad350ccff5d4b67555d7ff323ce97b148c95a59493d797fa3d88c
BLAKE2b-256 checksum
How to use checksums
3b20e70ecb4626bd9dd3640e4796a441af2e267ef46be06d638872dfbdffe9f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

5 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