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

Download files

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

Source Distribution

python_pptx_rs-0.0.1.tar.gz (49.8 kB view details)

Uploaded Source

Built Distributions

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

python_pptx_rs-0.0.1-cp310-abi3-win_amd64.whl (807.8 kB view details)

Uploaded CPython 3.10+Windows x86-64

python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

python_pptx_rs-0.0.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (1.8 MB view details)

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

File details

Details for the file python_pptx_rs-0.0.1.tar.gz.

File metadata

  • Download URL: python_pptx_rs-0.0.1.tar.gz
  • Upload date:
  • Size: 49.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for python_pptx_rs-0.0.1.tar.gz
Algorithm Hash digest
SHA256 c9c4e611d684ff7c04e86f0035ab87d5f1b18848903b835468864e466d4b8d68
MD5 a0e035a6d943b51cd8619da7b9418df3
BLAKE2b-256 2a443dddc61af364fb96b93657370fb4068a8234139d4a0852940562f05327c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pptx_rs-0.0.1.tar.gz:

Publisher: release.yml on wakita181009/python-pptx-rs

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

File details

Details for the file python_pptx_rs-0.0.1-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for python_pptx_rs-0.0.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c37d4d40134bb765b673377ff27974f04b497f121ea1e37ee2ae82e19c5e7a57
MD5 ef8ecda177eb187e443dfa0cb91a1180
BLAKE2b-256 069bb3b7256e294b608aa86baff2a7e667dce4a05b098c47176dda856c37f5a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pptx_rs-0.0.1-cp310-abi3-win_amd64.whl:

Publisher: release.yml on wakita181009/python-pptx-rs

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

File details

Details for the file python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a1066e653f3b023dc4d2e26644be37efe3b2c72565b698900b2eadbf756ee588
MD5 5427f0dc6ddf99ce8093a287695cb215
BLAKE2b-256 4ec954c08118cf719fcfdc17f0b7421533a320d0e6f87fac7d228349c9b340e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on wakita181009/python-pptx-rs

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

File details

Details for the file python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7291bb384ccc7699490cc7d9a3e4aaddece7454e52de23eaa07e88eb6ac5d129
MD5 a5565306a8856e4ec62ed00b1fd58be4
BLAKE2b-256 8fe2e4267a84e88afec3cf37406c7999360b7596172ba63b3f59b86bfe9e51e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pptx_rs-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on wakita181009/python-pptx-rs

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

File details

Details for the file python_pptx_rs-0.0.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for python_pptx_rs-0.0.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 80e5c7ee1ebad350ccff5d4b67555d7ff323ce97b148c95a59493d797fa3d88c
MD5 f08094d2c8ab8951fe7b3c70900d3528
BLAKE2b-256 3b20e70ecb4626bd9dd3640e4796a441af2e267ef46be06d638872dfbdffe9f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pptx_rs-0.0.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on wakita181009/python-pptx-rs

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

Release history Release notifications | RSS feed

This release

0.0.1 This release

5 files

Supported by

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