Skip to main content

PyPI version fury.io

QOI

A simple Python wrapper around qoi, the "Quite OK Image" image format. It's

  • Lossless with comparable compression to PNG, but fast! It encodes 10x faster and decodes around 5x faster than PNG in OpenCV or PIL.
  • You can make it lossy with a simple trick, and then you can get similar compression to JPEG but a whole lot faster. (These number vary a lot depending on how "lossy" you make JPEG or QOI). That's cool.
  • Multi-threaded - no GIL hold-ups here.

Install

pip install qoi

Example

import numpy as np
import qoi

# Get your image as a numpy array (OpenCV, Pillow, etc. but here we just create a bunch of noise). Note: HWC ordering
rgb = np.random.randint(low=0, high=255, size=(224, 244, 3)).astype(np.uint8)

# Write it:
_ = qoi.write("/tmp/img.qoi", rgb)

# Read it and check it matches (it should, as we're lossless)
rgb_read = qoi.read("/tmp/img.qoi")
assert np.array_equal(rgb, rgb_read)

# Likewise for encode/decode to/from bytes:
bites = qoi.encode(rgb)
rgb_decoded = qoi.decode(bites)
assert np.array_equal(rgb, rgb_decoded)

# Benchmarking
from qoi.benchmark import benchmark
benchmark()  # Check out the arguments if you're interested

If you want to really max out your CPU:

from concurrent.futures import ThreadPoolExecutor, wait
import numpy as np
import qoi

RGB = np.random.randint(low=0, high=255, size=(224, 244, 3)).astype(np.uint8)

def worker():
    bites = bytearray(qoi.encode(RGB))
    img_decoded = qoi.decode(bites)

print("Go watch your CPU utilization ...")
with ThreadPoolExecutor(8) as pool:
    futures = [pool.submit(worker) for _ in range(10000)]
    wait(futures)

(Single-threaded) Benchmarks

If we consider lossless, then we're generally comparing with PNG. Yup, there are others, but they're not as common. Benchmarks:

Test image Method Format Input (kb) Encode (ms) Encode (kb) Decode (ms) SSIM
all black ('best' case) PIL png 6075.0 37.75 6.0 16.04 1.00
all black ('best' case) opencv png 6075.0 23.82 7.7 17.93 1.00
all black ('best' case) qoi qoi 6075.0 4.13 32.7 2.67 1.00
koi photo PIL png 6075.0 849.07 2821.5 85.46 1.00
koi photo opencv png 6075.0 95.24 3121.5 44.34 1.00
koi photo qoi qoi 6075.0 28.37 3489.0 17.19 1.00
random noise (worst case) PIL png 6075.0 300.37 6084.5 46.30 1.00
random noise (worst case) opencv png 6075.0 63.72 6086.9 14.01 1.00
random noise (worst case) qoi qoi 6075.0 16.16 8096.1 7.67 1.00

So qoi isn't far off PNG in terms of compression, but 4x-20x faster to encode and 1.5x-6x faster to decode.

NB:

  1. There's additional overhead here with PIL images being converted back to an array as the return type, to be consistent. In some sense, this isn't fair, as PIL will be faster if you're dealing with PIL images. On the other hand, if your common use case involves arrays (e.g. for computer vision) then it's reasonable.
  2. Produced with python src/qoi/benchmark.py --implementations=qoi,opencv,pil --formats=png,qoi on an i7-9750H. Not going to the point of optimised OpenCV/PIL (e.g. SIMD, or pillow-simd) as the results are clear enough for this 'normal' scenario. If you want to dig further, go for it! You can easily run these tests yourself.

If we consider lossy compression, again, JPEG is usually what we're comparing with. Normally, it'd be unfair to compare QOI with JPEG as QOI is lossless, however we can do a slight trick to make QOI lossy - downscale the image, then encode it, then upsample it by the same amount after decoding. You can see we've implemented that below with a downscaling to 40% and JPEG quality of 80 (which results in them having the same visual compression i.e. SSIM). So, results (only on koi photo as the rest are less meaningful/fair for lossy):

Test image Method Format Input (kb) Encode (ms) Encode (kb) Decode (ms) SSIM
koi photo PIL jpg @ 80 6075.0 47.67 275.2 24.01 0.94
koi photo opencv jpg @ 80 6075.0 24.03 275.3 19.58 0.94
koi photo qoi qoi 6075.0 23.17 3489.0 12.94 1.00
koi photo qoi-lossy-0.40x0.40 qoi 6075.0 4.38 667.5 2.96 0.94

Here we see that lossless qoi is losing out considerably in compression, as expected for lossy vs lossless. Also, qoi is only 1x-2x faster of encoding, and 1.5x-2x faster for decoding. However, it's important to note that this varies a lot depending on the jpeg quality specified - here it's 80 but the default for OpenCV is actually 95 which is 3x worse compression and a bit slower.

However, that's still lossy vs lossless! If you look at qoi-lossy-0.40x0.40 where we downscale as above, you can see that it can perform really well. The compression ratio is now only 3x that of JPEG (and 5x better than lossless QOI, and also the same as the default OpenCV JPEG encoding at a quality of 95), but it's so fast - 5x-10x faster encoding, and 7x-8x faster decoding.

Anyway, there are definitely use cases where qoi may still make sense over JPEG. Even lossless QOI can be worth it if size isn't an issue, as it's a bit faster. But if you use the "lossy" QOI, you're getting "comparable" (depending on JPEG quality) compression but much faster.

NB:

  1. See above re additional PIL overhead.
  2. Produced with python src/qoi/benchmark.py --images=koi --implementations=qoi,qoi-lossy,opencv,pil --formats=jpg,qoi --qoi-lossy-scale=0.4 --jpeg-quality=0.8 on an i7-9750H. Not going to the point of optimised OpenCV/PIL (e.g. SIMD, or pillow-simd, libjpeg-turbo, different JPEG qualities, etc.) as the results are clear enough for this 'normal' scenario. If you want to dig further, go for it! You can easily run these tests yourself.

Developing

git clone --recursive https://github.com/kodonnell/qoi/
USE_CYTHON=1 pip install -e .[dev]
pytest .

We use cibuildwheel to build all the wheels, which runs in a Github action. If you want to check this succeeds locally, you can try (untested):

cibuildwheel --platform linux .

Finally, when you're happy, submit a PR.

Publishing

When you're on main on your local, git tag vX.X.X then git push origin vX.X.X. This pushes the tag which triggers the full GitHub Action and:

  • Builds source distribution and wheels (for various platforms)
  • Pushes to PyPI
  • Creates a new release with the appropriate artifacts attached.

TODO

  • Make benchmark.py a CLI in setup.py
  • Create a qoi CLI
  • Benchmarks - add real images, and also compare performance with QOI to see overhead of python wrapper.
  • setuptools_scm_git_archive?
  • Code completion?

Discussion

Wrap or rewrite?

For now, this is just a simple wrapper. We'll leave the original project to do all the hard work on performance etc., and also maintaining (or not) compatibility or adding new features etc. We make no claims to do any more than that - we're basically just porting that C functionality to (C)Python.

On the name

For now, let's rock with qoi because

  • We're already in python, and the py in pyqoi seems redundant. For what it's worth, 3 < 5.
  • pyqoi seems like a good name for a python-only version of QOI (useful for pypy etc.), which this isn't.
  • qoi is generally new so let's not overthink it for now. We can always rename later if needed.

What's up with ./src?

See here and here. I didn't read all of it, but yeh, import qoi is annoying when there's also a folder called qoi.

USE_CYTHON=1?

See here. Fair point.

Release files for qoi 0.7.2

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

Source distribution (sdist)

Source distribution for qoi 0.7.2
File Size Uploaded
qoi-0.7.2.tar.gz 3.3 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for qoi 0.7.2
File
qoi-0.7.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
qoi-0.7.2-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details
qoi-0.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
qoi-0.7.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
qoi-0.7.2-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
qoi-0.7.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
qoi-0.7.2-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
qoi-0.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
qoi-0.7.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
qoi-0.7.2-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
qoi-0.7.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
qoi-0.7.2-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
qoi-0.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
qoi-0.7.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
qoi-0.7.2-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
qoi-0.7.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
qoi-0.7.2-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
qoi-0.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
qoi-0.7.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
qoi-0.7.2-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
qoi-0.7.2-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
qoi-0.7.2-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
qoi-0.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
qoi-0.7.2-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
qoi-0.7.2-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 7.6 MB

Release files / qoi-0.7.2.tar.gz

Download URL qoi-0.7.2.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
26194b0e97ce345ca6d23f90154c95f05403b7ec0e053c54f26bc5b19e4f062f
BLAKE2b-256 checksum
How to use checksums
113493392cbb9208b88914ce73e614627d620ea912a759bd42886f6b91c3dbc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp313-cp313-win_amd64.whl

Download URL qoi-0.7.2-cp313-cp313-win_amd64.whl
Size 90.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
5e63d13795df37adfb850b2d6d131cb935b3af01353085be8b77cdf694ef760c
BLAKE2b-256 checksum
How to use checksums
da2ee12f5e21c778bafac2eb1f6813ccfb8f27c0ba969fcf3e2e0b1fd1e229e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp313-cp313-win32.whl

Download URL qoi-0.7.2-cp313-cp313-win32.whl
Size 77.9 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
9507d68f8b6747a1faaa7fb627d0e3a1765dc3ad8a643bfac0c0009650b69840
BLAKE2b-256 checksum
How to use checksums
29295a1afcafd2e726ef12723c5fe271927194de53606de09bd7de4a2a99c7b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL qoi-0.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 510.1 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6c73b04e16c590775542f39621ed6ac7c5729a1d7d98b8557fccecb5736dfeee
BLAKE2b-256 checksum
How to use checksums
9b4e0507c6155f8f255a2ac8b6d2ec10289b81a6944291e46da899c1a558ec91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL qoi-0.7.2-cp313-cp313-macosx_11_0_arm64.whl
Size 91.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f85df99ea39b45618ae6d2003d110cc765b0aa03e967335041568ff78b77d998
BLAKE2b-256 checksum
How to use checksums
e9426270949608a5c9afdb207c984aa04a9e19e053c50d859a4de79ce6289f45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp313-cp313-macosx_10_13_x86_64.whl

Download URL qoi-0.7.2-cp313-cp313-macosx_10_13_x86_64.whl
Size 98.2 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
311a0088a00d16d1f55e9dbc362067afd915d10a98d3539b0b729c47bd984640
BLAKE2b-256 checksum
How to use checksums
a548b6dee0ee2733f3627443e146137aa43593b05e45b4e814625e175581c36d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp312-cp312-win_amd64.whl

Download URL qoi-0.7.2-cp312-cp312-win_amd64.whl
Size 91.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
dd664dade8dc920c1c283a980609ac0affadf7e5e7f16baca73b1da0b9e067d6
BLAKE2b-256 checksum
How to use checksums
9eb35cc2c45a96c57274030c0aaa19fb7abfc736972f75309afc4d4994a8bc15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp312-cp312-win32.whl

Download URL qoi-0.7.2-cp312-cp312-win32.whl
Size 78.2 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
64d454654795db581715e7aafe851a7f4cf5b258997ffe257347cb1154e8f0bb
BLAKE2b-256 checksum
How to use checksums
da95ec720affd59679b807d43c2779c194423a3f3c48b46d7c1f1a8997f64d5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL qoi-0.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 514.8 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
516dd5ac76887d6232147315ac98b2f5c9785d6f5e31aede0a03d6d24bdda353
BLAKE2b-256 checksum
How to use checksums
5574f5a1f297e9e5b4ff76ff798c21f7c7ed37289d3571ae55f8d0af791d736e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL qoi-0.7.2-cp312-cp312-macosx_11_0_arm64.whl
Size 92.9 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
320e2eadf06bdaec0fbd6d915b28ccc9b6b7119c0ae525399d4154649b759e03
BLAKE2b-256 checksum
How to use checksums
c9324ac3b393972aff7a10c4d48a76db32c5e9678c02e83098b4c8cdf786c71e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp312-cp312-macosx_10_13_x86_64.whl

Download URL qoi-0.7.2-cp312-cp312-macosx_10_13_x86_64.whl
Size 99.7 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
4521ea1d7a6ec73c4c2c9d931ff2fa91dfcbc173518d97ec0802a2fd6e71bf8b
BLAKE2b-256 checksum
How to use checksums
a6cb320fdb3f9111d09490b8d2c1dbaea6cd3844c3eaac5cad7724919dc5c984
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp311-cp311-win_amd64.whl

Download URL qoi-0.7.2-cp311-cp311-win_amd64.whl
Size 90.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
41cf2a13e594b04d19426ee2c98fd80a84ae52f12fd8f8a6fc12b9307c836f2d
BLAKE2b-256 checksum
How to use checksums
0e0805ebe357b17ae5dfeaecbe684e11c0abec88394163fbfadb4470f0760551
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp311-cp311-win32.whl

Download URL qoi-0.7.2-cp311-cp311-win32.whl
Size 78.0 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
ffc94b1b42454bf533e37722d652e67d1c32e41e2b075217081a646ea496f4b1
BLAKE2b-256 checksum
How to use checksums
7d91c36927ebdd5f7533180164d2f49a50d03e4b57a89b2e5d1983a6a228ee06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL qoi-0.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 521.6 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a0b7b93dcfb02f8c0ac9c6130470b31e3f077e4a75d63a07680ebcf0872bab57
BLAKE2b-256 checksum
How to use checksums
40e5ec4092f4041ca0aec98c08dbc6c182a384611ef1b014e14cc8be13026683
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL qoi-0.7.2-cp311-cp311-macosx_11_0_arm64.whl
Size 92.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d4ad7478f9118bf27d8838c4723c5bbc3314081c3ba77647aa49436b3b507a70
BLAKE2b-256 checksum
How to use checksums
9f32f92f7c4b906affafdd33c7f7fca2e0d7ce2b13d56e83e022cd10626a6a33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp311-cp311-macosx_10_9_x86_64.whl

Download URL qoi-0.7.2-cp311-cp311-macosx_10_9_x86_64.whl
Size 98.1 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
f599816d35cf76be283a2b8ebf7d53e3d1d27e422eee86779a43bbbcbef089fd
BLAKE2b-256 checksum
How to use checksums
840b26cb0320311f6cc919fe4aecb9c6cdc53ddb56ed625628f5e409e718b293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp310-cp310-win_amd64.whl

Download URL qoi-0.7.2-cp310-cp310-win_amd64.whl
Size 90.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
7e0808217ff4ace3552002d52abda11a4a4a329de0b8f016d3c2f436fc4a43af
BLAKE2b-256 checksum
How to use checksums
a1e76427afcbe643ea0dd653e0ad25251d15d2215ecf2e9b2453150ee292035f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp310-cp310-win32.whl

Download URL qoi-0.7.2-cp310-cp310-win32.whl
Size 78.2 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
093d195d300a15d3d0ba9af2f5ec0c5366e998267216b7ba72a574a666c3e442
BLAKE2b-256 checksum
How to use checksums
0f218075cfa10c4f27d8f173cf9f8fec167dc9e3d68daa1a1836f98e7b96422f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL qoi-0.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 483.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e7f7965e510e57743b3fbb96e54cb9147152fc084db37ac5ee62e32e9d7daa90
BLAKE2b-256 checksum
How to use checksums
e63511c51693a130947edef2a41f938e5bc6b1802a043888e7e03419d33abd21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL qoi-0.7.2-cp310-cp310-macosx_11_0_arm64.whl
Size 92.1 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f40fa296726c6cd4cafb06de2f25ad44af05be50a223baa8e4b20971ff73f498
BLAKE2b-256 checksum
How to use checksums
e9fb7cec567bde6a256421a64c77145e529d7681c091edfc41769616c8b032dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp310-cp310-macosx_10_9_x86_64.whl

Download URL qoi-0.7.2-cp310-cp310-macosx_10_9_x86_64.whl
Size 98.0 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
3f65e9b7f8423c8adbeb83dac992400971b777ca5a263075e929c5db0f4bc3de
BLAKE2b-256 checksum
How to use checksums
920a5506186fdac2557b6d92d86dfe17ebc81f4875dd8ae945ddeaf80c32da1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp39-cp39-win_amd64.whl

Download URL qoi-0.7.2-cp39-cp39-win_amd64.whl
Size 90.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
a06c78b3a58cef0096efa229098a7259ef4dc88d455cc3d9cf3336bcb1d0ec5b
BLAKE2b-256 checksum
How to use checksums
2bb0af5b88a1308a94189b690f2f3f9b8b0ff46be0595afc9843e381b116a80b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp39-cp39-win32.whl

Download URL qoi-0.7.2-cp39-cp39-win32.whl
Size 78.8 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
e607e299d85fc9d384870c6eec08f4b376907465b1fa06fab0f35957004226a8
BLAKE2b-256 checksum
How to use checksums
ad3214461b4c800544cd55fbb5bfe6b0cc73f59e774d1d1f79b5f706d74964a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL qoi-0.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 486.4 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8bd4b0654933ba219348f0ce15242c6a3d0a67afe88ef4ea363221ec71efbf7d
BLAKE2b-256 checksum
How to use checksums
69141f419347aa60593424c457eda902b8fe881cf56cbb35b4142f465ed8ac36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp39-cp39-macosx_11_0_arm64.whl

Download URL qoi-0.7.2-cp39-cp39-macosx_11_0_arm64.whl
Size 92.7 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
37a2db3827b11725776339469df8f9df86adcb30699cc0f9fa3460ce9df323cc
BLAKE2b-256 checksum
How to use checksums
7cc31aa563fad603cb1dbb36e8440d88427783fb31e1923623970e14eca18618
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release files / qoi-0.7.2-cp39-cp39-macosx_10_9_x86_64.whl

Download URL qoi-0.7.2-cp39-cp39-macosx_10_9_x86_64.whl
Size 98.5 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
ed46ea00e92a1083ce9390f62ea0bdbd6c42873b30cb9ac74f4f707f33afbfe2
BLAKE2b-256 checksum
How to use checksums
e6912d629def08ec1f5f7b081973ed81bd3272b1c6c6a48dc7c6f34553ec21e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.8

Release history Release notifications | RSS feed

This release

0.7.2 This release

26 release files

0.7.1

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.0

26 release files

0.4.0

26 release files

0.3.1

21 release files

0.3.0

21 release files

0.2.0

16 release files

0.1.2

16 release files

0.0.9

20 release files

0.0.8

20 release files

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

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