Platforms

Platform support & build strategies (as of 06/2026)

Covered platforms

Platform

MinVer

Release

Tier

PBIN

🐍

πŸ§ͺ

πŸ› οΈ

SBLD

πŸ§ͺ

πŸ› οΈ

CIBW

πŸ§ͺ

πŸ› οΈ

βš™οΈ

NAT

Since

Notes

macOS arm64

🟑 12

βœ…πŸ”„ PBIN

🟒 1

βœ…

βœ…

βœ…

⬜

βœ…

βœ…

⬜

βœ…

βœ…

⬜

clang

βœ…

0.1.0 β€˜21

macOS x86_64

🟑 12

βœ…πŸ”„ PBIN

πŸ”΅ 2

βœ…

βœ…

βœ…

πŸ”³

βœ…

🟨

πŸ”²

βœ…

βœ…

⬜

clang

βœ…

0.1.0 β€˜21

Windows x86_64

βšͺ 7/8?

βœ…πŸ”„ PBIN

🟒 1

βœ…

βœ…

βœ…

⬜

βœ…

βœ…

⬜

βœ…

βœ…

⬜

clang

βœ…

0.1.0 β€˜21

Windows x86

βšͺ 7/8?

βœ…πŸ”„ PBIN

πŸ”΅ 2

βœ…

⏸️

❌

πŸ”³

βœ…

❌

πŸ”³

βœ…

❌

πŸ”³

clang

❔

0.1.0 β€˜21

Windows arm64

βšͺ 10?

βœ…πŸ”„ PBIN

πŸ”΅ 2

βœ…

βœ…

βœ…

πŸ”³

βœ…

🟨

πŸ”²

βœ…

❌

πŸ”³

clang

βœ…

0.7.0 β€˜22

Linux glibc x86_64

🟒 2.17

βœ…πŸ”„ PBIN

🟒 1

βœ…

βœ…

βœ…

⬜

βœ…

βœ…

⬜

βœ…

βœ…

⬜

gcc

βœ…

0.1.0 β€˜21

Linux glibc i686

🟒 2.17

βœ…πŸ”„ PBIN

🟒 1-2

βœ…

⏸️

❌

πŸ”³

βœ…

β˜‘οΈ

πŸ”³

βœ…

β˜‘οΈ

⬜

gcc

βœ…

1.0.0 β€˜22

Linux glibc aarch64

🟒 2.17

βœ…πŸ”„ PBIN

🟒 1

βœ…

βœ…

βœ…

πŸ”³

βœ…

β˜‘οΈ

πŸ”²

βœ…

βœ…

⬜

gcc

βœ…

0.1.0 β€˜21

Linux glibc armv7l

🟒 2.17

βœ…πŸ”„ PBIN

🟒 1-2

βœ…

⏸️

❌

πŸ”³

βœ…

β˜‘οΈ

πŸ”³

βœ…

β˜‘οΈ

⬜

gcc

βœ…

0.1.0 β€˜21

Linux glibc ppc64le

🟒 2.17

βœ…πŸ”„ PBIN

πŸ”΅ 2-3

βœ…

βœ…

❌

πŸ”³

βœ…

β˜‘οΈ

πŸ”³

βœ…

β˜‘οΈ

πŸ”³

clang

β˜‘οΈ

5.2.0 β€˜25

Linux glibc s390x

🟑 2.28

βœ…πŸ“Œ CIBW

πŸ”΄ 4

❌

❌

NA

NA

❌

NA

NA

βœ…

β˜‘οΈ

πŸ”³

clang

β˜‘οΈ

5.2.0 β€˜25 ?

Linux glibc riscv64

🟠 2.34

βœ…πŸ“Œ CIBW

🟑 3

❌

❌

NA

NA

❌

NA

NA

βœ…

β˜‘οΈ

πŸ”³

clang

β˜‘οΈ

5.2.0 β€˜25

Linux glibc loong64

πŸ”΄ 2.38

πŸŸ©πŸ“Œ CIBW

🟑 3

❌

❌

NA

NA

❌

NA

NA

βœ…

β˜‘οΈ

πŸ”³

clang

β˜‘οΈ

5.2.0 β€˜25

Linux glibc mips64le

🟒 2.17

πŸŸ©πŸ“Œ SBLD

🟑 3

❌

❌

NA

NA

βœ…

β˜‘οΈ

πŸ”³

❌

NA

NA

NA

❔

5.11.0 β€˜26

1

Linux glibc mipsle

🟒 2.17

πŸŸ©πŸ“Œ SBLD

🟑 3

❌

❌

NA

NA

βœ…

❌

πŸ”³

❌

NA

NA

NA

❔

5.11.0 β€˜26

1

Linux musl x86_64

🟒 1.2

βœ…πŸ”„ CIBW

πŸ”΅ 2

βœ…

❓

❌

πŸ”³

❌

NA

NA

βœ…

βœ…

⬜

gcc

βœ…

4.21.0 β€˜23 ?

Linux musl i686

🟒 1.2

βœ…πŸ”„ CIBW

πŸ”΅ 2-3

βœ…

❓

❌

πŸ”³

❌

NA

NA

βœ…

β˜‘οΈ

⬜

gcc

βœ…

4.21.0 β€˜23 ?

Linux musl aarch64

🟒 1.2

βœ…πŸ”„ CIBW

πŸ”΅ 2

βœ…

❓

❌

πŸ”³

❌

NA

NA

βœ…

βœ…

⬜

gcc

βœ…

4.21.0 β€˜23 ?

Linux musl armv7l

🟒 1.2

βœ…πŸ”„ CIBW

πŸ”΅ 2-3

❌

❌

NA

NA

❌

NA

NA

βœ…

β˜‘οΈ

⬜

gcc

βœ…

5.2.0 β€˜25

Linux musl ppc64le

🟒 1.2

βœ…πŸ“Œ CIBW

🟑 3

❌

❌

NA

NA

❌

NA

NA

βœ…

β˜‘οΈ

πŸ”³

clang

β˜‘οΈ

5.2.0 β€˜25

Linux musl s390x

🟒 1.2

βœ…πŸ“Œ CIBW

πŸ”΄ 4

❌

❌

NA

NA

❌

NA

NA

βœ…

β˜‘οΈ

πŸ”³

clang

β˜‘οΈ

5.2.0 β€˜25 ?

Linux musl riscv64

🟒 1.2

βœ…πŸ“Œ CIBW

🟑 3

❌

❌

NA

NA

❌

NA

NA

βœ…

β˜‘οΈ

πŸ”³

clang

β˜‘οΈ

5.2.0 β€˜25

Linux musl loong64

🟒 1.2

πŸŸ©πŸ“Œ CIBW

🟑 3

❌

❌

NA

NA

❌

NA

NA

βœ…

β˜‘οΈ

πŸ”³

clang

β˜‘οΈ

5.2.0 β€˜25

Android arm64

🟑 23

βœ…πŸ”„ PBIN

πŸ”΅ 2

βœ…

❓

❌

πŸ”³

βœ…

❌

πŸ”³

❌

NA

NA

NA

🚧

5.2.0 β€˜25

Android armeabi

🟑 23

βœ…πŸ”„ PBIN

πŸ”΅ 2

βœ…

❓

❌

πŸ”³

βœ…

❌

πŸ”³

❌

NA

NA

NA

❔

5.2.0 β€˜25

Android x86_64

🟑 23

πŸŸ¦πŸ”„ PBIN

βšͺ nan

βœ…

❌

❌

πŸ”³

❌

NA

NA

❌

NA

NA

NA

βž–

5.0.0 β€˜25

Android x86

🟑 23

πŸŸ¦πŸ”„ PBIN

βšͺ nan

βœ…

❌

❌

πŸ”³

❌

NA

NA

❌

NA

NA

NA

βž–

5.0.0 β€˜25

iOS arm64 device

πŸ”΄ 26?

πŸŸ¦πŸ”„ PBIN

βšͺ nan

βœ…

❓

❌

πŸ”³

❌

NA

NA

❌

NA

NA

NA

βž–

5.0.0 β€˜25

iOS arm64 simulator

πŸ”΄ 26?

πŸŸ¦πŸ”„ PBIN

βšͺ nan

βœ…

❌

❌

πŸ”³

❌

NA

NA

❌

NA

NA

NA

βž–

5.0.0 β€˜25

iOS x86_64 simulator

πŸ”΄ 26?

πŸŸ¦πŸ”„ PBIN

βšͺ nan

βœ…

❌

❌

πŸ”³

❌

NA

NA

❌

NA

NA

NA

βž–

5.0.0 β€˜25

Notes

  1. MIPS platforms are not officially part of the manylinux standard, so the wheel tags we use are actually rejected by pip, as they are not in its internal whitelist. This can be remedied by re-tagging with wheel locally to match the host’s sysconfig.get_platform() value. pip maintainers have been informed of this situation.

Legend

  • MinVer: Minimum required OS versions for present release. Other build strategies may result in different min versions, and older versions of pypdfium2 may have lower requirements.

    • 🟒 Low/OK, 🟑 Medium/Acceptable, 🟠 Elevated, πŸ”΄ High, βšͺ Uncertain / not tagged

  • Release: status, version tracked, build strategy

    • βœ… Wheels on PyPI/GH, 🟩 Wheels on GH only (platform rejected by PyPI), 🟦 Setup only

    • πŸ”„ Latest version, πŸ“Œ Pinned version

  • Tier: Platform support level

    • 🟒 1 Core, πŸ”΅ 2 Secondary, 🟑 3 Complicated, πŸ”΄ 4 Major issues, βšͺ Not classified

  • Build strategies

    • PBIN = Repack external builds from bblanchon/pdfium-binaries.

    • SBLD = Built at pypdfium2 via sbuild.yaml (build_toolchained.py).

    • CIBW = Built at pypdfium2 via cibw.yaml (build_native.py + containers on Linux, build_toolchained.py on Windows and macOS).

  • 🐍 Conda (PBIN only)

    • βœ… Released to conda

    • ⏸️ Built, but conda upload is paused due to storage limits. Get in touch with pdfium-binaries if you would like this to be reinstated.

    • ❓ Built, but unclear if this could be released to conda

    • ❌ Not built at pdfium-binaries

  • πŸ§ͺ Testing status

    • βœ… Tested on a native host

    • β˜‘οΈ Tested in an emulated container

    • 🟨 Tested when native compilation is used, untested otherwise.

    • ❌ Not automatically tested

  • πŸ› οΈ Cross compilation indicator

    • ⬜ Native compilation

    • πŸ”³ Cross compilation

    • πŸ”² Both is possible

  • βš™οΈ Compiler used (CIBW only, PBIN and SBLD always use clang)

  • NAT: Can be built natively at end user level?

    • βœ… Yes

    • β˜‘οΈ Yes (tested in docker)

    • ❔ Unknown

    • 🚧 This used to work in the past, but is currently broken.

Help wanted

Reckon you can turn more ❌ into βœ… ? Please give it a try and open a PR.

Other platforms

Platform

Status

Comment

FreeBSD

🟦

Fallback installation with libreoffice-pdfium should work, and we occasionally test it on CI. Note, however, that libreoffice-pdfium tends to be a bit incomplete. Building from source might work with a feasible amount of patching. It may be possible to provide prebuilds for x86_64 in the future. There is also upstream work in progress to have PDFium added to the ports collection.

OpenBSD / *BSD

❓

Libreoffice is not built with PDFium on OpenBSD. However, if building on FreeBSD is possible, it may be doable on other BSDs, too.

Illumos

❌

No known prebuilds available. PDFium has not been ported to this platform.

Haiku

❌

No known prebuilds available. PDFium has not been ported to this platform.

SerenityOS

❌

No known prebuilds available. PDFium has not been ported to this platform.

AIX

❓

No known prebuilds available. Proprietary OS. Chromium build infrastructure appears to have some degree of support for AIX but the exact status is unknown.

z/OS

❌

No known prebuilds available. PDFium has not been ported to this platform. Proprietary OS.