Skip to main content

libstb

Python bindings for the stb single-header libraries. pip install libstb and you have image/font processing with no system dependencies. The C++ library is usable from CMake too.

module status
stb_image (read) done
stb_image_write (write: png, jpg, bmp, tga) done
stb_image_resize2 (resize) done
stb_truetype (fonts: metrics, glyphs, text, atlas) done
stb_rect_pack used internally by the atlas packer

Python

import numpy as np
import libstb

img = libstb.Image.open("photo.png")                # or bytes; also: channels=4, flip=True
img.width, img.height, img.channels                 # 640, 480, 3
img.numpy()                                         # uint8 pixels (H, W, C), no copy; np.asarray(img) works too
libstb.ImageInfo.read("photo.png")                  # header only: (width, height, channels)
libstb.Image(np.zeros((8, 8, 4), np.uint8))         # from your own uint8 array (no copy, see below)
img.copy()                                          # an independent image (deep copy)

img.write("out.jpg")                                 # format from the extension, default settings
img.write_jpg("out.jpg", quality=80)                # or pick the format and its settings
data = img.to_png(compression=9)                    # -> bytes (to_png / to_jpg / to_bmp / to_tga)

small = img.resize(320, 240)                        # new Image; default Resizer()
small = img.resize(320, 240, "cubic")               # filter by name (see the table below)
libstb.Resizer("cubic")                             # same name works on Resizer itself
libstb.Resizer(libstb.Resizer.Filter.MITCHELL, libstb.Resizer.Edge.WRAP, srgb=False)
img.resize(320, 240, libstb.Resizer("linear", srgb=False))  # name + other options

font = libstb.Font.open("font.ttf")                 # trusted fonts only, see below
text = font.render("Hello\nworld", 32)              # RenderedText(bitmap: Image (1 channel), origin_x, origin_y)
text.bitmap.write("hello.png")
font.metrics(32), font.advance("A", 32), font.kerning("A", "V", 32), font.measure("Hello", 32)
font.render_glyph("A", 32)                          # Glyph(bitmap, x_offset, y_offset, advance)
atlas = font.make_atlas("ABCabc123", 32, 256, 256)  # Atlas: .image and atlas["A"] -> AtlasGlyph

libstb.load("photo.png")                            # shortcut: Image.open(...).array
libstb.info("photo.png")                            # shortcut: ImageInfo.read(...)

Encoding. Every format has a pair of methods with its own settings, all defaulted: to_png(compression=8), to_jpg(quality=90), to_bmp(), to_tga(rle=True) return the file's bytes, and write_png(path, ...), write_jpg(path, ...), write_bmp(path), write_tga(path, ...) do the same and write it (only after encoding succeeded, so a failure never leaves a truncated file). write(path) is the shortcut: it picks the format from the extension (.png .jpg .jpeg .bmp .tga, case-insensitive; ValueError for anything else) and uses the defaults. For other settings call write_*.

Resize filters by name. Image.resize(w, h, x) and Resizer(x) accept a Resizer.Filter, or a case-insensitive name (- and space count as _). Any other option (edge, srgb, max_bytes) is a keyword of Resizer(...). Image.resize also takes a ready-made Resizer, or None for the default.

name filter note
auto, automatic, default DEFAULT Catmull-Rom when enlarging, Mitchell when shrinking
nearest, point POINT nearest neighbour
linear, bilinear, triangle TRIANGLE
cubic, bicubic, catmull_rom CATMULL_ROM sharp; the PIL/OpenCV meaning of "cubic"
bspline, cubic_bspline CUBIC_BSPLINE smooth, slightly blurry; scipy's meaning of "cubic"
mitchell MITCHELL good all-round compromise
box, area BOX

An unknown name raises ValueError listing the valid ones. There is no lanczos: stb_image_resize2 does not have it.

Fonts: trusted files only. stb_truetype does no bounds checking; its author writes "NO SECURITY GUARANTEE -- DO NOT USE THIS ON UNTRUSTED FONT FILES". Load your own or vetted system fonts, never user uploads. (Images are different: stb_image is fuzzed, and libstb adds dimension and size limits.)

Errors mirror the C++ hierarchy: libstb.Error (a RuntimeError) with DecodeError, EncodeError, LimitError below it, so a single except libstb.Error catches every libstb failure. Bad arguments raise ValueError, unreadable files OSError (FileNotFoundError, PermissionError, ... as the OS says). Images whose decoded size would exceed max_bytes (default 512 MiB) are rejected from the header, before any pixel memory is allocated.

libstb.Image is stb::image itself, not a wrapper: open, resize, to_* and write* are the C++ members, run without the GIL. img.array / np.asarray(img) are numpy views of its pixels (kept alive by the view).

Pixels are never copied behind your back. Image(array) uses a writable, C-contiguous uint8 array in place, so the image and the array share their pixels (changes show on both sides, and the image keeps the array alive). Any other array (read-only, or strided like arr[::-1]) cannot be shared and is copied. Image.open takes ownership of stb's own buffer, no copy either. When you want an independent image, say so: img.copy() (also copy.copy and copy.deepcopy).

C++ / CMake

# after `pip install libstb`
execute_process(COMMAND ${Python3_EXECUTABLE} -c "import libstb; print(libstb.get_cmake_dir())"
    OUTPUT_VARIABLE libstb_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
find_package(libstb CONFIG REQUIRED)
target_link_libraries(app PRIVATE libstb::core)

The C++ namespace and headers are stb (<stb.h>, <stb/*.hpp>); the CMake target (libstb::core) and the Python package (libstb) keep the project name.

#include <stb.h>

stb::image img = stb::image::open("in.png");        // throws stb::error subclasses
img(0, 0, 1) = 255;                                       // unchecked pixel access
stb::image dup = img.copy();                              // image is move-only: copies are explicit
img.write("out.jpg");                                      // format from the extension, default settings
img.write_jpg("out.jpg", 80);                             // or pick the format and its settings
std::vector<std::uint8_t> bytes = img.to_png(9);          // to_png / to_jpg / to_bmp / to_tga -> file bytes

stb::image small = img.resize(320, 240);              // default resizer
stb::image crisp = img.resize(320, 240, "cubic");      // filter by name, or by enum:
stb::image soft  = img.resize(320, 240, stb::resize_filter::mitchell);

stb::resize_options o;                                 // full control: filter, edge, srgb, max_bytes
o.edge = stb::resize_edge::wrap;
stb::resizer r(o);                                     // also: resizer("cubic"), resizer(resize_filter::box)
stb::image tile = img.resize(320, 240, &r);            // nullptr = default resizer; r.resize(img, w, h) works too

stb::font f = stb::font::open("font.ttf");          // cheap to copy, thread-safe
stb::text_bitmap t = f.render("h\xC3\xA9llo", 32);      // UTF-8 in, 1-channel image out
stb::atlas atlas = f.make_atlas(U"abc", 32, 256, 256);

Design: stb never appears in a public header. Where a class would hold stb state, it is hidden behind a pimpl: font keeps the font bytes and the stbtt_fontinfo in an opaque font::impl (shared and immutable, so copies are cheap and threads can share one). image and resizer carry no stb state at all (plain ints/enums), so a pimpl there would only add indirection. image is move-only: its pixels are a shared_ptr<uint8_t> whose deleter (or aliased owner) decides who frees them, so the same class holds memory it allocated, stb's decode buffer (adopted, not copied) or memory somebody else owns (image::wrap, which is how a numpy array becomes an image without a copy). A copy is always spelled copy(). The four output formats are a closed set, so there is no encoder class hierarchy: each format is a to_* / write_* pair on image with its own defaulted settings, next to decoding in src/core/image.cpp. Runtime failures derive from stb::error (decode_error, encode_error, limit_error, io_error); programmer errors throw std::invalid_argument.

Or cmake --install build and find_package(libstb) as usual.

Layout (mirrors httpp / ctoon)

include/stb.h               umbrella header, owns LIBSTB_VERSION_* (single source of truth)
include/stb/*.hpp           public API (error, image, resizer, font, utf8); never includes stb
src/core/*.cpp              implementation; the only place stb headers are compiled
src/third_party/stb/        vendored stb headers (committed, no submodules)
src/bindings/python/        nanobind module (bind_*.cpp, one per area) + the `libstb` Python package
cmake/                      DynamicVersion, Startup, Optimize, package config
tests/{cpp,python,cmake}    unit tests + find_package consumer test, all run by ctest
tests/data/                 synthetic test font (solid-rectangle glyphs) + the script that makes it

Each stb header is compiled with STB_*_STATIC, so no stbi_* symbol leaks from libstb_core: it links fine next to your own copy of stb.

Build & test

pip install -r requirements-dev.txt
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failure

Wheels: abi3 (cp312-abi3, covers 3.12+) plus one wheel each for cp39-cp311; see .github/workflows/wheels.yml. Free-threaded builds are not supported.

License

MIT for libstb. The vendored stb headers are MIT / public domain (see src/third_party/README.md).

Metadata

Release files for libstb 0.3.0

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

Source distribution (sdist)

Source distribution for libstb 0.3.0
File Size Uploaded Provenance
libstb-0.3.0.tar.gz 290.4 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for libstb 0.3.0
File
libstb-0.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
libstb-0.3.0-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
libstb-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
libstb-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
libstb-0.3.0-cp312-cp312-macosx_10_15_universal2.whl CPython 3.12 CPython 3.12 macOS 10.15+ universal2 (ARM64, x86-64) Details
libstb-0.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
libstb-0.3.0-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
libstb-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
libstb-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
libstb-0.3.0-cp311-cp311-macosx_10_15_universal2.whl CPython 3.11 CPython 3.11 macOS 10.15+ universal2 (ARM64, x86-64) Details
libstb-0.3.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
libstb-0.3.0-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
libstb-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
libstb-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
libstb-0.3.0-cp310-cp310-macosx_10_15_universal2.whl CPython 3.10 CPython 3.10 macOS 10.15+ universal2 (ARM64, x86-64) Details
libstb-0.3.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
libstb-0.3.0-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
libstb-0.3.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
libstb-0.3.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
libstb-0.3.0-cp39-cp39-macosx_10_15_universal2.whl CPython 3.9 CPython 3.9 macOS 10.15+ universal2 (ARM64, x86-64) Details

Total release size: 51.2 MB

Release files / libstb-0.3.0.tar.gz

Download URL libstb-0.3.0.tar.gz
Size 290.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d79fc08de85c094c1595cc58aa808f4b0b543799fb0b9f8f2082c873224dbdff
BLAKE2b-256 checksum
How to use checksums
5fa1a27bda3b514ecd43080a8fda83f549fa61346d863cb048b49c12688521d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp312-cp312-win_amd64.whl

Download URL libstb-0.3.0-cp312-cp312-win_amd64.whl
Size 3.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c0a4f661966436517a71ff1d5b8911053b829909468de1b9ea5a46491d03d15e
BLAKE2b-256 checksum
How to use checksums
93b2ce98248b096a37b6b1f876370c5bb26c7d911654e186ac034d27bcce7984
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp312-cp312-win32.whl

Download URL libstb-0.3.0-cp312-cp312-win32.whl
Size 3.4 MB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
6419f20d67b6253d55f97b2f2ae31b1ead2c59e3d3572ebb4b2a302477294178
BLAKE2b-256 checksum
How to use checksums
1edd47bf028b958859215afe0b83058c62fe476d929054c3fafc74ef50e05968
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL libstb-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 2.5 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7f12c5694d3e039dd3c9c055a3569352480809cc1c4e33af625afc8badce7694
BLAKE2b-256 checksum
How to use checksums
2473b9f7da25170a6505a9296bc3a7797f34352c1ab5943dae70f061028d41c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL libstb-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9add9f2cb3fc5b1b30321d85d80229d157216b8f66ba7980e167036dc6cec5f8
BLAKE2b-256 checksum
How to use checksums
478de9061b526f1fad02eef698d2288c40e8671bafa7a576bb2d3debe7bc858f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp312-cp312-macosx_10_15_universal2.whl

Download URL libstb-0.3.0-cp312-cp312-macosx_10_15_universal2.whl
Size 1.3 MB
Tags CPython 3.12 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
94fd8223cd1ad0b8aacc0a261a7b86e84d58844a3a7ce3799c241aadac616026
BLAKE2b-256 checksum
How to use checksums
475f0cd2ba8a52d39a1a8e4d76642bb9a67b78df2b87e1137f0006b298b68722
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp311-cp311-win_amd64.whl

Download URL libstb-0.3.0-cp311-cp311-win_amd64.whl
Size 3.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
05a65f9d48d6a181da422e7ebe9d561791ad953848d4b1ed99ae1abde2f75881
BLAKE2b-256 checksum
How to use checksums
aaabfba1fb45d85de3fee58838cb0bd639730b78c2325e29c53be2c3e7004515
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp311-cp311-win32.whl

Download URL libstb-0.3.0-cp311-cp311-win32.whl
Size 3.4 MB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
3647da2dd9bb060e838e0a71c9832cd6a44015d0b1df680de14cdcb54f1034ac
BLAKE2b-256 checksum
How to use checksums
c2c405fb9bd3937349806901a9dcf054d4ce0d42283dbbe84a3e7c4f7e6900ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL libstb-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 2.5 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
64563e506d63c9c71b2b5682d2ad79c25a1be1d5582f1688eadbe397e94952c7
BLAKE2b-256 checksum
How to use checksums
81e313146e9d165dbc760c4d34b0f71a52955965c9e015e34a2ec75988982f25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL libstb-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1795eda72848cf95501d2a5709594479ec1684910a0667c083807c9f449bf554
BLAKE2b-256 checksum
How to use checksums
9822edfef8364df8e0a3662fe7188f2605dc8732fcee98fa12b191c94acedccf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp311-cp311-macosx_10_15_universal2.whl

Download URL libstb-0.3.0-cp311-cp311-macosx_10_15_universal2.whl
Size 1.3 MB
Tags CPython 3.11 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
c833c8b7b90ef554c2968057ba350a37173be6ceffbd49c974a2fdeb97710ede
BLAKE2b-256 checksum
How to use checksums
13b5421811cf22562fb49e5fec74eecfd374b61115b0ab6ac994a88f91c0eb5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp310-cp310-win_amd64.whl

Download URL libstb-0.3.0-cp310-cp310-win_amd64.whl
Size 3.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
9460794af6907a2953fbaef913ba728f75eeadf464b7c2ea11d08c55014f08b4
BLAKE2b-256 checksum
How to use checksums
eb8192f38c1f0164325ab664bab3aa45a19b3a4a1b33ed44df25460f7af614a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp310-cp310-win32.whl

Download URL libstb-0.3.0-cp310-cp310-win32.whl
Size 3.4 MB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
c116984d5afc4984834fd6297d9a090ae06895e2ab751e1f06665f41db2acecd
BLAKE2b-256 checksum
How to use checksums
c1a218b07ba1a4f9fc8c1080fe2ced67512c5c73a517e58dcbe40ae123f048ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL libstb-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 2.5 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d6ce6953668c5a582e9701a66fccb8db7a69fece0226d1fd176a9fd2976245ac
BLAKE2b-256 checksum
How to use checksums
e35d88d4df75f5cf8b41e58d9b12a62f23c4a88cb907ca515cb06c158340dc1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL libstb-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2ef6f23c542478ea6e5c01c758e5eb6d755eff5183c5c8141b6e67739056bb59
BLAKE2b-256 checksum
How to use checksums
f5a880ee869f28b41cf07c8d893b1efef90d5cca09cf2964e9e995001f284d9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp310-cp310-macosx_10_15_universal2.whl

Download URL libstb-0.3.0-cp310-cp310-macosx_10_15_universal2.whl
Size 1.3 MB
Tags CPython 3.10 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
299350da9142e09cde628894969ce999af046f5bc9ff51705ff98e84b73ec081
BLAKE2b-256 checksum
How to use checksums
ed7b5df0b77fcd98644ecae5c30a706cf1f7f6c1913d748a7859412d2cc27949
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp39-cp39-win_amd64.whl

Download URL libstb-0.3.0-cp39-cp39-win_amd64.whl
Size 3.4 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
d462652609afdb1aed9178ac8cb3ee92cca37755957792f9208a654890e33984
BLAKE2b-256 checksum
How to use checksums
3ef2599d60b2b60bddf9c9f2ab67e75a9db7b27279877646c8c950cec78c2e3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp39-cp39-win32.whl

Download URL libstb-0.3.0-cp39-cp39-win32.whl
Size 3.4 MB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
25e22a5b98207f090f10757e04d416de52f155ea0f18c23ca27e8de83f93f889
BLAKE2b-256 checksum
How to use checksums
c693538a0bc24ac84150580c1ac820e4a1d3ab1d418dca26548c4aee0d539255
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL libstb-0.3.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 2.5 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
9f57b20b3804f6cee5a8cc2bbba5c7e0654b221206fe012be0ed348b278bd462
BLAKE2b-256 checksum
How to use checksums
53c45bba60a95456ec86705394b34f2b90503ab85664b0627325176f61b4066a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL libstb-0.3.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
32618b6c9c114976b96655c271e5f5e51fb6cbf89d14b8ea49fc0a8f6bd62647
BLAKE2b-256 checksum
How to use checksums
4ddc44775a6eca78a0ea0514022df58bb079754af439b8fa9077c889ca0cd008
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / libstb-0.3.0-cp39-cp39-macosx_10_15_universal2.whl

Download URL libstb-0.3.0-cp39-cp39-macosx_10_15_universal2.whl
Size 1.3 MB
Tags CPython 3.9 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
1733aa79572f20775822869e8379bbef2a3e7587c5a42fb872fab55fb5b7e8c7
BLAKE2b-256 checksum
How to use checksums
8821d829f8e9f4a2e28038eaa7278c968f160d5700c4f30a20b960227944f893
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for libstb 0.3.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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