Skip to main content

high-performance rendering

Project description

ZenGL

ZenGL is a minimalist Python module providing exactly one way to render scenes with OpenGL.

pip install zengl

ZenGL is ...

  • high-performance
  • simple - buffers, images, pipelines and there you go
  • easy-to-learn - it is simply OpenGL with no magic added
  • verbose - most common mistakes are catched and reported in a clear and understandable way
  • robust - there is no global state or external trouble-maker affecting the render
  • backward-compatible - it requires OpenGL 3.3 - it is just enough
  • cached - most OpenGL objects are reused between renders
  • zen - there is one way to do it

Concept

ZenGL provides a simple way to render from Python. We aim to support headless rendering first, rendering to a window is done by blitting the final image to the screen. By doing this we have full control of what we render. The window does not have to be multisample, and it requires no depth buffer at all.

read more...

Examples

pip install zengl[examples]

grass.py

grass

envmap.py

envmap

instanced_crates.py

instanced_crates

julia_fractal.py

julia_fractal

blending.py

blending

render_to_texture.py

render_to_texture

pybullet_box_pile.py

pybullet_box_pile

pygmsh_shape.py

pygmsh_shape

texture_array.py

texture_array

monkey.py

monkey

reflection.py

reflection

polygon_offset.py

polygon_offset

blur.py

blur

hello_triangle.py

hello_triangle

hello_triangle_srgb.py

hello_triangle_srgb

viewports.py

viewports

points.py

points

wireframe_terrain.py

wireframe_terrain

crate.py

crate

sdf_example.py

sdf_example

sdf_tree.py

sdf_tree

mipmaps.py

mipmaps

conways_game_of_life.py

conways_game_of_life

Headless

import zengl
from PIL import Image

ctx = zengl.context(zengl.loader(headless=True))

size = (1280, 720)
image = ctx.image(size, 'rgba8unorm', samples=1)

triangle = ctx.pipeline(
    vertex_shader='''
        #version 330

        out vec3 v_color;

        vec2 positions[3] = vec2[](
            vec2(0.0, 0.8),
            vec2(-0.6, -0.8),
            vec2(0.6, -0.8)
        );

        vec3 colors[3] = vec3[](
            vec3(1.0, 0.0, 0.0),
            vec3(0.0, 1.0, 0.0),
            vec3(0.0, 0.0, 1.0)
        );

        void main() {
            gl_Position = vec4(positions[gl_VertexID], 0.0, 1.0);
            v_color = colors[gl_VertexID];
        }
    ''',
    fragment_shader='''
        #version 330

        in vec3 v_color;

        layout (location = 0) out vec4 out_color;

        void main() {
            out_color = vec4(v_color, 1.0);
        }
    ''',
    framebuffer=[image],
    topology='triangles',
    vertex_count=3,
)

image.clear_value = (1.0, 1.0, 1.0, 1.0)
image.clear()
triangle.render()

Image.frombuffer('RGBA', size, image.read(), 'raw', 'RGBA', 0, -1).save('hello.png')

Project details


Download files

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

Source Distribution

zengl-1.2.1.tar.gz (30.9 kB view details)

Uploaded Source

Built Distributions

zengl-1.2.1-pp37-pypy37_pp73-win_amd64.whl (38.1 kB view details)

Uploaded PyPy Windows x86-64

zengl-1.2.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (40.9 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

zengl-1.2.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (43.1 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

zengl-1.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (35.9 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

zengl-1.2.1-cp310-cp310-win_amd64.whl (38.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

zengl-1.2.1-cp310-cp310-win32.whl (32.8 kB view details)

Uploaded CPython 3.10 Windows x86

zengl-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl (103.6 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

zengl-1.2.1-cp310-cp310-musllinux_1_1_i686.whl (96.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

zengl-1.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (104.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

zengl-1.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (98.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

zengl-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl (37.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

zengl-1.2.1-cp39-cp39-win_amd64.whl (38.1 kB view details)

Uploaded CPython 3.9 Windows x86-64

zengl-1.2.1-cp39-cp39-win32.whl (32.8 kB view details)

Uploaded CPython 3.9 Windows x86

zengl-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl (103.1 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

zengl-1.2.1-cp39-cp39-musllinux_1_1_i686.whl (96.5 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

zengl-1.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (104.5 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

zengl-1.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (97.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

zengl-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl (37.9 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

zengl-1.2.1-cp38-cp38-win_amd64.whl (38.1 kB view details)

Uploaded CPython 3.8 Windows x86-64

zengl-1.2.1-cp38-cp38-win32.whl (32.9 kB view details)

Uploaded CPython 3.8 Windows x86

zengl-1.2.1-cp38-cp38-musllinux_1_1_x86_64.whl (105.3 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

zengl-1.2.1-cp38-cp38-musllinux_1_1_i686.whl (98.7 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

zengl-1.2.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (106.4 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

zengl-1.2.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (99.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

zengl-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl (37.9 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

zengl-1.2.1-cp37-cp37m-win_amd64.whl (37.9 kB view details)

Uploaded CPython 3.7m Windows x86-64

zengl-1.2.1-cp37-cp37m-win32.whl (32.7 kB view details)

Uploaded CPython 3.7m Windows x86

zengl-1.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl (101.6 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

zengl-1.2.1-cp37-cp37m-musllinux_1_1_i686.whl (94.5 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

zengl-1.2.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (102.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

zengl-1.2.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (95.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

zengl-1.2.1-cp37-cp37m-macosx_10_9_x86_64.whl (37.7 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

zengl-1.2.1-cp36-cp36m-win_amd64.whl (37.9 kB view details)

Uploaded CPython 3.6m Windows x86-64

zengl-1.2.1-cp36-cp36m-win32.whl (32.7 kB view details)

Uploaded CPython 3.6m Windows x86

zengl-1.2.1-cp36-cp36m-musllinux_1_1_x86_64.whl (100.6 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

zengl-1.2.1-cp36-cp36m-musllinux_1_1_i686.whl (93.6 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

zengl-1.2.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (102.0 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

zengl-1.2.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (95.0 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

zengl-1.2.1-cp36-cp36m-macosx_10_9_x86_64.whl (37.7 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file zengl-1.2.1.tar.gz.

File metadata

  • Download URL: zengl-1.2.1.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1.tar.gz
Algorithm Hash digest
SHA256 5b877f7e220ae0818919e5c092c4f13ff87287c00aea851cc9263320089ff24a
MD5 8fe531c6ed9c4c766613350bdaab45bc
BLAKE2b-256 1dafa8d095105ffd5d9ccdf9c46ae65ee42debc7385697a59039cc500e35e1d9

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-pp37-pypy37_pp73-win_amd64.whl.

File metadata

  • Download URL: zengl-1.2.1-pp37-pypy37_pp73-win_amd64.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: PyPy, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 9999a21a84a55a7c0aca64a8f5a967d7e572cee720d85d317b890e1858b02505
MD5 e39e89e10af4ed435612bbd042e6906a
BLAKE2b-256 885b1c764e056b812319219e8a364cd56e6cd8c39971ee02a6f06f3454f4bbdc

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 264968c3931808e9f2fcf19f1d42adbf6b9d7df1ca47f7b5828e062e1083af22
MD5 977dfb29ddaf8e69b0e491ad96389e0e
BLAKE2b-256 e74f78cef3d5f56f0331c5fd07c88477c9c27c4379f10c10d160c3fc90f10337

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 be0b8459aba5fc7196ef6623fe854a11a8d3189a0d9593174ab65da20345ca4d
MD5 d493e3289ace3c4f03dcdd9910c904a7
BLAKE2b-256 ad1c87be0862b52b13ffb5f3d1f116b6ec3f647f003a18e2d1c8f00935b93baa

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: PyPy, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4cf0d304e77557b34e9ecbd079398719866ea0998fb613a79abe07c5a0b5e241
MD5 da489a19f60db7d181c65bd0bcfbaf11
BLAKE2b-256 6228fbf48c47ce9654f5ebad04bf4f8b249d7f4a1dc551c844a49f8be9424d75

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 38.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ad6b8071241d96a151fe037c1a9606a8731975b0acd1289b37bf0555a9f9262b
MD5 646dcf84c09de6b12fcba2157709b488
BLAKE2b-256 898d66dd70caf3e85155bc2d0d89b58a92ac5f4383a5670f81b76f882d565ba5

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: zengl-1.2.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 32.8 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 9ef8a0c6a50f2f702be2cc9fba45b54a8f6120cf9ca7ac032492411a8468ea0b
MD5 38f33d7a52f86c739dce67c06b4a6c84
BLAKE2b-256 466cb6ffd43d47f05db5127d80a3d4f372102763fc80c4909d00628a870cb0e8

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 103.6 kB
  • Tags: CPython 3.10, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0dc102ea4def39202291ba8d29e6d47d1c5a612af038300a299188c9192353da
MD5 408982fa8d3f2be92f905163f691857b
BLAKE2b-256 76939c478fd641d5c666efc40006a59293cdbda42291873a3e93af2dfec61dc4

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

  • Download URL: zengl-1.2.1-cp310-cp310-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 96.8 kB
  • Tags: CPython 3.10, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d8280c01e293e1d0434e40290add48fddd5725da12667f84b9ad486171d7ec4f
MD5 667d6b05d7c8c51404e9b2bc038b8378
BLAKE2b-256 7a70c48a4164c228fa3fc33a30cbd546e41ac1731ed1d6b0cddfdaeca4130d5b

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 01f0fbc63b87642eda6237eaefcac08fbc6a97c25ca1a7df9c434e1309142ee7
MD5 9139b41f24524e652c20622febf4f6e6
BLAKE2b-256 848abb6d379fb5e04cb0cba1de446e8e175c38452163a414bb6943797dddaa2f

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 9931dd39520007b18b831907ecd9d0ea450728872ae97b7ecfce8609b779315a
MD5 e7d2be2a255b5b11a9a3380800cd6ffe
BLAKE2b-256 e2e871c9a282d285673ca13b22f66eb49c28c5c868bdd4f7aa0e27364d5dbaec

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 37.9 kB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9d19ba6df3e4c8937c705c3aa14a5f664788136933166a5a5f79fbb8661f937f
MD5 a0c26248e6e5b119cc9ad74065a042db
BLAKE2b-256 15f4488d9e155c7f07365f5a2d6b92f0f79e57a65333d7eed9953c16568b7552

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e05ae566600dda94a7bb525c95b22dd9b31ff5ead802698eae66c320d723438a
MD5 748835091a67cf63feb5b9381219d04b
BLAKE2b-256 126ce9d59307fa2c500e1a0b74559c87222514c6f6851790d80be3f5df2c0354

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp39-cp39-win32.whl.

File metadata

  • Download URL: zengl-1.2.1-cp39-cp39-win32.whl
  • Upload date:
  • Size: 32.8 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 2b9a7999abedfac02e134fd17bdb8f556732999e29b8a8df8848f83f49becab6
MD5 9764af4de67fe4cbc72c111137692c6a
BLAKE2b-256 e25cd70397997c3346f83a4745a1c9a96b1f6c7534f2b4aa3b3af4c8a3826fab

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 103.1 kB
  • Tags: CPython 3.9, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0def8081b1d217a5bef093fb3a580c435f0dfd48c466b1f5d94ac3b1860d45f5
MD5 47674596f70ab2088129502b1e191f02
BLAKE2b-256 a4c8241c8c8686013493ad3728ab29bdaa7e46d142cbc1edbd0afc1644b08da6

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

  • Download URL: zengl-1.2.1-cp39-cp39-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 96.5 kB
  • Tags: CPython 3.9, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 65a49ef408ab43d42678e525d7f7d27e8cc2f6fea9b04db410df030a62f81336
MD5 84f9de46fa1052422e99613c0c4f8d85
BLAKE2b-256 d59ce53621f7f61fe7c4fe981fc65c09e19c15ea94c215b526f5963146f796ec

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 064a428923cfde0e4bc2a815f1d379e17ee08b7af64f0867a393bc9f062fa08d
MD5 04b9d57e770d8cd1fb65ba2a634b18a6
BLAKE2b-256 899c639719cd07e332caf1f8fb426be565853b5b78255f02b5cdd1c460468c86

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 a67db86b9adf797e0adb3bc905d00e5c11649aa5b4eef50b597b2842ec48cd55
MD5 da298d2e6cf3fc122467a6fb960f3658
BLAKE2b-256 ecdf724eefeca32219cc5811c8b6dd8bf37698cadab6abf4c9ae99ececf8f677

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 37.9 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5f0ed0110779b2c79467600d5a4070c232f310bff6aa02556fff8d6e93d6ad2d
MD5 f86f270bc337675cc8da66f3bb6c48f6
BLAKE2b-256 b29cb607751eea4ed2184a35cd70e21476bde17664fd7327f638844fc5243e93

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 fc3504140c11c034321a94ce031b6f4c856b45a57cb227c6b1dea7be93cdcf95
MD5 3d00eabce1e581e36612286273e53899
BLAKE2b-256 62a84b3766fd04d7e1af1dd2be2d711ceeec5819e333d1d115b594db861d694b

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp38-cp38-win32.whl.

File metadata

  • Download URL: zengl-1.2.1-cp38-cp38-win32.whl
  • Upload date:
  • Size: 32.9 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 40a1bf9684201d92c0a71918b6712806ab70b72670c82f9eb5e92f172d18a773
MD5 49edc270abec8acc2557407be949fa6a
BLAKE2b-256 863a840853efc65fd17a2248191f79b17fa4e1395765156615ab66d7f70a3f14

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp38-cp38-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 105.3 kB
  • Tags: CPython 3.8, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c795d3b9e4272edcfcdbd75effafc2968ef0935ba59ddf8e4e923016413b5033
MD5 c2584e8540153db629f2ad86948e4d3b
BLAKE2b-256 f11b359c5e224f3f613c0c2d0f0fda5c48b2fab56732f90e1cbe5b6162ede2fe

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

  • Download URL: zengl-1.2.1-cp38-cp38-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 98.7 kB
  • Tags: CPython 3.8, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 ffcf12c059331425498cfc11b9816c873368ba263fa1a187c09fa5905737d775
MD5 044b31a20e22aa5de7aad38eee736984
BLAKE2b-256 d94cb823b9ead837cb8996fe1457b748832b77dc2b0c9fe42b1e69bf4bbc36fb

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 765ea504c196eca3996dfa1f8e70b8d193c00e39dbb4a478985033116876853f
MD5 26ce1a834932c698bfb73a1ec8b82d57
BLAKE2b-256 fd276cad34a357b169542f388b668590a6d0063abf0cd1ae944556b0aae559e8

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 913ce05866ef26b4ce8104147b37963ff26b2682ca3c109195cbb461b42f4644
MD5 68277588b2c965577d1067a96c4d2aac
BLAKE2b-256 15faecaff452b980aa98f5496c1bb05e65a9eb6e9c143697a8e72c28fc276e5e

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 37.9 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 460496377c802cb95ab00105bc4af2315667dea0e066913b60481bb879df5379
MD5 430a16c56915e82c78cbc213d86a7a00
BLAKE2b-256 1e526fa48053560b97f5acb6fa34a92940a239b35fa3e978b73ff3d877eefabc

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 37.9 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1433911545e4e5cd225e34a0c51376de5ba7b2871a62715e3bdc9d5d9fd60cbf
MD5 4801f39e2c83bdcd053fcf810cf3f7aa
BLAKE2b-256 0d7b4bc046eeae6d8de12d42f235e23a01449b5bc8178d6bd18477195701001a

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp37-cp37m-win32.whl.

File metadata

  • Download URL: zengl-1.2.1-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 32.7 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 ace6b157e8e7620dc500576193ea50d100f051bd202bb254f2f715fbe000d94c
MD5 008446b69d3ab70a761daccf2aa090f2
BLAKE2b-256 bb85c08b64796af16c822765f3f95403c896364858cf7a99e540681909524f1d

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 101.6 kB
  • Tags: CPython 3.7m, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 69e111e3e821739c06ef2f0a9fea461fcbfc025617aa211d55b9f39753365a27
MD5 b2f3f5431610e1791bfe01fc658f94e0
BLAKE2b-256 8946220829c62f43451ea43c29f4233be2032fd9bc6cb04547834a5f85a868b2

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

  • Download URL: zengl-1.2.1-cp37-cp37m-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 94.5 kB
  • Tags: CPython 3.7m, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 8de67ce05f3b6ee88aad0e66f6778dc6bc2b8460f40cef6bd9ba29f9bb1aec81
MD5 c159510b4917f9c167c87682648001a5
BLAKE2b-256 777c94fb8394a0afa0ad62a1e4cc103301983fd42ed3fafd4205eb9c43f956ad

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 56c791cf91fe1a28bb436ad953b20c59029152f57240a9e9afb6561beca3021d
MD5 db23d771d885717374c1efd2f3ba7fa0
BLAKE2b-256 b547792a80dbf75b670147f0931e52ec5d4d319a2e4d4c662ea224e75e28ef5a

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 9145d1aa427560b41a76f196ba25505be17dc9e817eb445dcf6bfc0fb5bc7fe9
MD5 d6564fe768e8c321f895d8252c4683b2
BLAKE2b-256 73798be49a7a33107ad124820e5f8f83e6eebda71da12589dbd45ca564048d32

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 37.7 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 671628949c2a0e32e75236761cf7f1ce586ba15431ff81d286d66c8bde836c5e
MD5 814c7a8ada8f00945c8c6c1cb1cb385c
BLAKE2b-256 7f9ae2ccf70ba7954b002d07baa0e0f100903d1ee6b4d38d54bdd86b83048f13

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 37.9 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 d30b549fb0805b579776a6a11874371e3048ef23f445078dbd12c2b379a227f2
MD5 890e290bf0efb357c483833227025ed2
BLAKE2b-256 ffee2363dda60014ef032968fc242560aebb24ffc48efc09a2a6558bf83bdaf8

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp36-cp36m-win32.whl.

File metadata

  • Download URL: zengl-1.2.1-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 32.7 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 9130456425e0886c69efb1848f4bd3bfa836f1141b75eb76ed24afc9969389ca
MD5 e9de01c43496b62aa6b00905bd8d33ac
BLAKE2b-256 fc8bcc7f0b8ecddf8e99188233936e41f6d15ccbc1f487ea7697b0dd02a088b1

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp36-cp36m-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 100.6 kB
  • Tags: CPython 3.6m, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 57048f2ec3149d9e6a836a1823651b59658d2b4f96728d9b3739579c4dbac3b0
MD5 4285dc7044b43e5a0f2f8cf9842eb331
BLAKE2b-256 854a92e0319a2f34a4c256295f45108b4fb272892e3e9bc0b822c39118ff6dcd

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp36-cp36m-musllinux_1_1_i686.whl.

File metadata

  • Download URL: zengl-1.2.1-cp36-cp36m-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 93.6 kB
  • Tags: CPython 3.6m, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 42ec2596347cecff63285e7563bff2a0b4b3c9c448d2a9b6194d6a19c25316c3
MD5 26b2ac85db3a8c844107af899ecbbd3d
BLAKE2b-256 87468a06fac25b76325cec2abe39956fb7dfa04ced6d597237e3216c871ec871

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 197177c932ecf8861c9091b544733963dcced28ac23c8edc94a88538202a7369
MD5 2cb2509c3a19670b9f4799ca9fe4d94b
BLAKE2b-256 058b61fb292290083be16c1a43a5249e5d05d229044cc13839ae1f8e8e1b63ca

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for zengl-1.2.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7f7ee78a0dc22d05999839cf0f044159697725213b6a485251c10935771b3fe3
MD5 21fa8e7f8436df61f4dc312a04620711
BLAKE2b-256 9e36227f7c7865d2d7cbeb60232dd0c960315c613300663be96427d2e792420f

See more details on using hashes here.

Provenance

File details

Details for the file zengl-1.2.1-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: zengl-1.2.1-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 37.7 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for zengl-1.2.1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c4aa90bc38ad325946a7372985a0f44b6db24a85f5c969f0c3ce83a39a1578c2
MD5 16f7372d1d5c4381d663a91365070eba
BLAKE2b-256 114f2e2220deb6109f7a811179a4856990fb4082ae82d1461941d47e398dad14

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page