astc-encoder-py
a python wrapper for astc-encoder
What it is and what it does
astc-encoder-py is a Python wrapper around the ARM ASTC encoder library, exposing both low-level compression and decompression APIs. It lets you convert images to ASTC texture format (used in graphics pipelines) and back, with support for different color profiles, block dimensions, and quality settings.
The package supports Python 3.7 through 3.13 with prebuilt wheels for most architectures. It depends only on archspec. The binding is relatively new (first release October 2024) and sees infrequent updates, with the last release 342 days ago.
Use it for:
- Compress game textures to ASTC format for mobile or console deployment.
- Convert ASTC-compressed textures back to standard formats for inspection or re-encoding.
- Experiment with different ASTC block sizes and quality settings to optimize texture memory usage.
- Automate texture asset preparation in graphics pipelines.
- Integrate ASTC encoding into batch image processing workflows.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
astc-encoder-py compresses and decompresses images to and from ASTC texture format, with optional codec integration for direct image handling.
Yes, if you need ASTC texture compression in Python. The package installs cleanly with prebuilt wheels across most platforms, has no known vulnerabilities, and carries an unrestrictive MIT license. However, the project is aging (last release 342 days ago) with low adoption (3 GitHub stars), so evaluate whether you need active maintenance or community support before committing to it for production use.
Install
astc-encoder-py on PyPI
pip
pip install astc-encoder-pyuv
uv add astc-encoder-pypoetry
poetry add astc-encoder-pyInstalling astc-encoder-py
Before you install
Medium install friction due to compiled wheels; prebuilt wheels cover most platforms including x86_64, ARM, PowerPC, and s390x on Linux, macOS, and Windows. Last release was 342 days ago; repository is active but aging.
License in practice
MIT License permits commercial and private use with minimal restrictions; you must include the license notice in distributions but face no copyleft obligations.
Quickstart
from astc_encoder import ASTCConfig, ASTCContext, ASTCImage, ASTCProfile, ASTCSwizzle, ASTCType
config = ASTCConfig(ASTCProfile.LDR_SRGB, 4, 4)
context = ASTCContext(config)
image = ASTCImage(ASTCType.U8, 512, 512, data=b'')
swizzle = ASTCSwizzle.from_str("RGBA")
compressed = context.compress(image, swizzle)
Requires Python 3.7 or later; archspec is a runtime dependency.
Verify before relying
- Performance characteristics (compression speed, output size) relative to other texture formats.
- Stability and maturity of the binding relative to the underlying astc-encoder library.
- Whether SVE support for ARM (listed as TODO) affects performance on modern ARM systems.
- Real-world use cases and adoption beyond the 3 GitHub stars currently visible.
Package facts
| License | MIT License Copyright (c) 2024 Rudolf Kolbe Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — archspec |
| Maintenance | aging — 342 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 147,334/month — #11,069 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: astc_encoder_py-0.1.12-cp37-abi3-macosx_10_9_x86_64.whl; astc_encoder_py-0.1.12-cp37-abi3-macosx_11_0_arm64.whl; astc_encoder_py-0.1.12-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; astc_encoder_py-0.1.12-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl; astc_encoder_py-0.1.12-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; astc_encoder_py-0.1.12-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl; astc_encoder_py-0.1.12-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; astc_encoder_py-0.1.12-cp37-abi3-musllinux_1_2_aarch64.whl; astc_encoder_py-0.1.12-cp37-abi3-musllinux_1_2_armv7l.whl; astc_encoder_py-0.1.12-cp37-abi3-musllinux_1_2_i686.whl; astc_encoder_py-0.1.12-cp37-abi3-musllinux_1_2_ppc64le.whl; astc_encoder_py-0.1.12-cp37-abi3-musllinux_1_2_s390x.whl; astc_encoder_py-0.1.12-cp37-abi3-musllinux_1_2_x86_64.whl; astc_encoder_py-0.1.12-cp37-abi3-win32.whl; astc_encoder_py-0.1.12-cp37-abi3-win_amd64.whl; astc_encoder_py-0.1.12-cp37-abi3-win_arm64.whl; astc_encoder_py-0.1.12-pp310-pypy310_pp73-macosx_10_15_x86_64.whl; astc_encoder_py-0.1.12-pp310-pypy310_pp73-macosx_11_0_arm64.whl; astc_encoder_py-0.1.12-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; astc_encoder_py-0.1.12-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Keywords: astc, texture
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
texture2ddecoderDecodes compressed texture formats (BC, PVRTC,…
permissive · top 15,000 on PyPI
etcpakCompresses image data into GPU-friendly texture…
permissive · top 15,000 on PyPI
brotlipybrotlipy provides Python bindings to the Brotli…
permissive · top 5,000 on PyPI
pcodecPcodec compresses and decompresses numerical…
unclear · top 15,000 on PyPI
ncompressProvides LZW compression and decompression…
permissive · top 15,000 on PyPI
apple-compressPython bindings for Apple's libcompression…
unclear · top 15,000 on PyPI
lzfsePython bindings for the LZFSE reference…
permissive · top 5,000 on PyPI
pyzstdProvides Python bindings to the Zstandard…
permissive · top 5,000 on PyPI
encodecEnCodec is a neural audio codec that compresses…
noncommercial · top 15,000 on PyPI
pyjpeglsEncodes and decodes image data using the…
permissive · top 15,000 on PyPI