Skip to main content

A fast digital pathology image decoder powered by Rust

Project description

Eozin Python: The dye-namic solution for digital pathology

A fast digital pathology image decoder powered by Rust. The library's primary purpose is to provide efficient access to individual tiles within digital pathology images. The name is derived from eosin, an essential dye solution used in pathological diagnosis.

Quickstart

This example demonstrates how to select the lowest resolution level from a digital pathology image in a native Rust environment, retrieve the central tile within that level, and save it as a JPEG file.

from eozin import Eozin

slide = Eozin("/some/slide.svs")
width, height = slide.dimensions();

# Get the index of the lowest resolution level
lowest_resolution_level = slide.level_count() - 1;

# level_tile_ranges returns [(horizontal_tiles, vertical_tiles)]
lowres_tile_ranges = decoder.level_tile_ranges[lowest_resolution_level];

# Retrieve the tile at the center of the level
lowres_centered_tile = slide.read_tile(
  lowest_resolution_level, 
  lowres_tile_ranges[0] // 2, 
  lowres_tile_ranges[1] // 2, 
)

lowres_centered_tile.show()

# OpenSlide like functionality
slide.read_region((0, 0), 0, (1024, 1024))

Core Concept

Digital pathology images are captured using high-magnification microscopes, resulting in massive images that can reach hundreds of thousands of pixels in dimension. Because storing such large images in standard formats is impractical, they are designed as containers comprising small rectangular images called tiles.

Furthermore, since downscaling these images on the fly is computationally expensive, they typically store multiple lower-resolution versions, referred to as levels. Vendors have developed various proprietary formats, and libraries like OpenSlide and bioformats have been instrumental in handling them.

The motivation for Eozin is to provide lightweight and fast access to these tiles. Specifically, each tile is stored as a fragmented byte sequence; Eozin calculates the byte offset based on the requested level and coordinates, then appends the necessary headers so the buffer can be interpreted as a standard image format.

Pixel-level processing (such as intensity manipulation) is intentionally left to established libraries—such as the image crate in Rust, Pillow in Python, or Blob objects in JS/Web environments.

Since the I/O and decoding logic are completely decoupled, Eozin can be adapted to various environments. Client-side rendering in the browser achieves performant response times, and its efficiency is also ideal for high-throughput AI interpretation and analysis.

Notes

Vendor and file format names mentioned in this library are the property of their respective owners. This library is not certified for clinical use.

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

eozin-0.1.0a1.tar.gz (62.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

eozin-0.1.0a1-cp38-abi3-win_arm64.whl (203.0 kB view details)

Uploaded CPython 3.8+Windows ARM64

eozin-0.1.0a1-cp38-abi3-win_amd64.whl (209.9 kB view details)

Uploaded CPython 3.8+Windows x86-64

eozin-0.1.0a1-cp38-abi3-win32.whl (202.9 kB view details)

Uploaded CPython 3.8+Windows x86

eozin-0.1.0a1-cp38-abi3-musllinux_1_2_x86_64.whl (556.9 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

eozin-0.1.0a1-cp38-abi3-musllinux_1_2_i686.whl (596.6 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

eozin-0.1.0a1-cp38-abi3-musllinux_1_2_armv7l.whl (633.0 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

eozin-0.1.0a1-cp38-abi3-musllinux_1_2_aarch64.whl (525.0 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

eozin-0.1.0a1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (353.7 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

eozin-0.1.0a1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (380.2 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

eozin-0.1.0a1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (471.4 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

eozin-0.1.0a1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (357.9 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

eozin-0.1.0a1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (348.8 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

eozin-0.1.0a1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (382.4 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.5+ i686

eozin-0.1.0a1-cp38-abi3-macosx_11_0_arm64.whl (308.9 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

eozin-0.1.0a1-cp38-abi3-macosx_10_12_x86_64.whl (313.5 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file eozin-0.1.0a1.tar.gz.

File metadata

  • Download URL: eozin-0.1.0a1.tar.gz
  • Upload date:
  • Size: 62.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for eozin-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 5eff0a2916b17633fd20df56bb5c84950fed8337fb9f519350ad92eea80ab76d
MD5 23c98ba82bc4fff91596eb48ddc0ee4f
BLAKE2b-256 dd041c275cadd1a3fe79e53ff7027962b5f231879e16d708de385e2081ca9dec

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1.tar.gz:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-win_arm64.whl.

File metadata

  • Download URL: eozin-0.1.0a1-cp38-abi3-win_arm64.whl
  • Upload date:
  • Size: 203.0 kB
  • Tags: CPython 3.8+, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 da30d5b909d307c41fde595f7d3adb046a6b2a700ff0a57cee4140d958336449
MD5 929eeb9d3e3fb30da25aee7e4a47b9db
BLAKE2b-256 f903790d3db7dd0e5fe3608dc5b4552f5c59067d4d51deb68bfaf47b139188a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-win_arm64.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: eozin-0.1.0a1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 209.9 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 47d6b93b1877740051849988c7df4bd5db0ce891b0c2480486981831de48712a
MD5 57c8a007098f4e7d2df0cb08333d9410
BLAKE2b-256 022099c7de23842f702d7562b29e5eae1998644c797cb3b467af42d4d3b2c318

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-win_amd64.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-win32.whl.

File metadata

  • Download URL: eozin-0.1.0a1-cp38-abi3-win32.whl
  • Upload date:
  • Size: 202.9 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 607568580dc293c0af26ab5fa2cf0dbe6a2998ac6b494ffc36d503ecee061b9f
MD5 872d350acbe5b1ff1e0cae4c191c79d5
BLAKE2b-256 809e39cab69f45c8dccd9f2d25d9eb4c4731eec43e57bbc4a9677d438f55f073

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-win32.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b77f9e1bf391068b209297bb2981d4146b2ef96bfaedeac222216b68ae153c18
MD5 32af2dfb32f58094233257ffd48a2b20
BLAKE2b-256 5b2577854061193a781dfbd4721ab738eede317ffdc80cc2100b665765cd57d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-musllinux_1_2_x86_64.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d3fd7606fb8ec6ff1fb7a19152c824adef8b11cd60ca275cdda4d50803552949
MD5 4ea32e7318b5361d2cb917056605b053
BLAKE2b-256 7353c0ca0c2f0e7037c83523450fff5b1a3cd18f0def2a62b216d98b2c1ba19f

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-musllinux_1_2_i686.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 8cec6666607182678aaaa7500b70c9417ebe47b61c2579be2c1bfd6c40c10252
MD5 f18f8706e28c21cc75a8f30b8145644b
BLAKE2b-256 ada391ae36e67cd48e79091baac04ee74105c0c8ffb8ad1eddd47019700b6800

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-musllinux_1_2_armv7l.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e85042cb259cbebe0bd24b64deadfd0fd5e316763faf1717647b74ef570a1a7f
MD5 ce03cf26e12fc273e95bee3740a04d12
BLAKE2b-256 f8b49ef5db5fc1b2349ab9120dc205ac89c02c4ad3eb313922fab9cb42dac887

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-musllinux_1_2_aarch64.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fce10f8fb945893d4900cd16251afdcd269fa03cda0ad9a6488cb15812150c3a
MD5 09226c8f4aed31f33ab720cba11a00a5
BLAKE2b-256 d2de06267539ff66b3cdcf6220209f454ac4d583c89e8afd9076b819ae8b4e70

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 cfda651214789023f261a710444adcbf10542cc1f2cc67487a3c1f80895254db
MD5 6c8d8677abff5a8161496897717b69c4
BLAKE2b-256 ea2a052cf49abc905d38b5ed4ca34f48cc9ec6b1bc401c30f720a84dc7a5db53

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 83fd62e581df544e4ea26b6461ab929499f5c5ffde287add81428af9426c0ca2
MD5 11df99e1628ddb61e725503ce9bda6c0
BLAKE2b-256 c30fef5427d80f44ae6d2e701eb73219be35581f9ad6b6ae25431593a4cd11e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 94c8376a72b6304b1ea28c51496d9ebce83a3f84d2a23321c46821ea9fda6a3e
MD5 460ef74d617107e7c8fa8a41823854ef
BLAKE2b-256 a39905fed7f13d556c9f3852819cd9a473761243e9606408e15cfdd1bd822b76

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8e211fec6167c6baf5131a8645598de1fecb24147c3911c3cf029e1fd4753b6
MD5 c80a360685b08ff7c7d24038a7828aba
BLAKE2b-256 0056560671437cdc84e7273d5e29eb6889d71df45898730c176abaa35976cdc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e464083ae169d16486f7d3614ba3f7c4c2d2737a4e24837a49f13e89a29fc9dc
MD5 f6b208b8d271ab6f38a75bec53e69083
BLAKE2b-256 8a2180b44b754be880c5479e807e7ec7d061cc517783cd1bb373b13cb646abc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd6edf10ff2b03cd6d49282ca8335c410d678d8848e444860eeec14414a87034
MD5 cc87e211abe2bcb0fee8e9dda7d30e30
BLAKE2b-256 4b1f73b9aa8979fb14ca4304c7113dc559d05ce782da4de728f5d08fede52493

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eozin-0.1.0a1-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for eozin-0.1.0a1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 68599f166cc4a9ac3d65ab5923b3ac38f4302786c15316d2446bfd003868a268
MD5 78f49bd58a1ae1d4265af95cfe19a828
BLAKE2b-256 2efc3f109f1527e675358468c139f30bb39c0a6ffe6a5f5a5ac5fc7c90508e2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for eozin-0.1.0a1-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: pypi_release.yml on yujota/eozin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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