├── include ├── fastslide │ ├── runtime │ │ ├── io │ │ │ ├── file_handle_pool.h │ │ │ ├── binary_utils.h │ │ │ └── file_reader.h │ │ └── tile_writer │ │ │ ├── fs_profile.h │ │ │ ├── blended │ │ │ ├── resample_mks.h │ │ │ ├── mks_kernel.h │ │ │ ├── srgb_linear.h │ │ │ └── blended_strategy.h │ │ │ ├── direct │ │ │ ├── fills.h │ │ │ ├── copy_planar.h │ │ │ ├── copy_rgb8.h │ │ │ └── direct_strategy.h │ │ │ └── tile_writer_strategy.h │ ├── readers │ │ ├── aperio │ │ │ ├── aperio_format_plugin.h │ │ │ └── metadata_parser.h │ │ ├── qptiff │ │ │ └── qptiff_format_plugin.h │ │ ├── readers.h │ │ ├── mrxs │ │ │ ├── mrxs_format_plugin.h │ │ │ ├── mrxs_decoder.h │ │ │ ├── mrxs_ini_parser.h │ │ │ ├── mrxs_constants.h │ │ │ └── mrxs_tile_executor.h │ │ └── tiff_based_tile_executor.h │ ├── resample │ │ └── utilities.h │ ├── python │ │ └── cache.h │ ├── c │ │ ├── fastslide.h │ │ └── registry.h │ ├── fastslide.h │ ├── utilities │ │ ├── hash.h │ │ ├── colors.h │ │ └── tiff │ │ │ └── tiff_cache_service.h │ └── core │ │ └── metadata.h └── aifocore │ ├── utilities │ ├── fmt.h │ ├── thread_pool_singleton.h │ ├── pyvips.h │ ├── vips.h │ └── temporary.h │ ├── shared │ └── exceptions.h │ └── ranges │ └── zip.h ├── third_party └── lodepng │ ├── .clang-format │ └── version.bzl ├── subprojects ├── highway.wrap ├── proxy-libintl.wrap ├── cereal.wrap ├── zlib.wrap ├── lz4.wrap ├── liblzma.wrap ├── fmt.wrap ├── libtiff.wrap ├── pugixml.wrap ├── zstd.wrap ├── pybind11.wrap ├── google-benchmark.wrap ├── libwebp.wrap ├── libjpeg-turbo.wrap └── gtest.wrap ├── docs ├── requirements.in ├── source │ ├── Makefile │ ├── make.bat │ ├── _static │ │ └── custom.css │ ├── formats │ │ ├── index.rst │ │ ├── svs.rst │ │ ├── mrxs.rst │ │ └── qptiff.rst │ ├── api │ │ └── index.rst │ └── index.rst ├── doxygen_footer.html ├── doxygen_header.html └── Makefile ├── MANIFEST.in ├── python ├── fastslide │ └── __init__.py └── test_import.py ├── src ├── fastslide │ ├── c │ │ └── fastslide.cpp │ ├── runtime │ │ ├── tile_writer │ │ │ ├── direct │ │ │ │ ├── copy_planar.cpp │ │ │ │ ├── copy_rgb8.cpp │ │ │ │ └── fills.cpp │ │ │ └── blended │ │ │ │ └── mks_kernel.cpp │ │ ├── global_cache_manager.cpp │ │ ├── io │ │ │ ├── binary_utils.cpp │ │ │ └── file_reader.cpp │ │ └── register_builtin_formats.cpp │ ├── utilities │ │ ├── tiff │ │ │ └── tiff_cache_service.cpp │ │ └── tile_cache_manager.cpp │ ├── readers │ │ ├── aperio │ │ │ └── aperio_format_plugin.cpp │ │ ├── qptiff │ │ │ └── qptiff_format_plugin.cpp │ │ └── mrxs │ │ │ └── mrxs_format_plugin.cpp │ └── python │ │ └── cache.cpp └── aifocore │ ├── utilities │ └── thread_pool_singleton.cc │ ├── shared │ └── python │ │ └── vector_module.cpp │ ├── pathology │ ├── inference.cpp │ └── inference_fimage.cpp │ └── status │ └── trace_example.cpp ├── pyproject.toml ├── meson_options.txt ├── .github └── workflows │ └── mirror-issues-to-internal-monorepo.yaml └── tools └── copy.bara.sky /include/fastslide/runtime/io/file_handle_pool.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /third_party/lodepng/.clang-format: -------------------------------------------------------------------------------- 1 | DisableFormat: true 2 | SortIncludes: Never 3 | -------------------------------------------------------------------------------- /subprojects/highway.wrap: -------------------------------------------------------------------------------- 1 | [wrap-git] 2 | url = https://github.com/google/highway.git 3 | revision = master 4 | 5 | [provide] 6 | hwy = hwy_dep 7 | -------------------------------------------------------------------------------- /third_party/lodepng/version.bzl: -------------------------------------------------------------------------------- 1 | LODEPNG_VERSION = "20250506" 2 | LODEPNG_COMMIT = "344b4b442d0de0787a999724dd6569461a00c92c" 3 | LODEPNG_SOURCE = "https://raw.githubusercontent.com/lvandeve/lodepng/refs/heads/master/lodepng.cpp" 4 | LODEPNG_HEADER = "https://raw.githubusercontent.com/lvandeve/lodepng/refs/heads/master/lodepng.h" 5 | -------------------------------------------------------------------------------- /subprojects/proxy-libintl.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = proxy-libintl-0.5 3 | source_url = https://github.com/frida/proxy-libintl/archive/refs/tags/0.5.tar.gz 4 | source_filename = proxy-libintl-0.5.tar.gz 5 | source_hash = f7a1cbd7579baaf575c66f9d99fb6295e9b0684a28b095967cfda17857595303 6 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/proxy-libintl_0.5-1/proxy-libintl-0.5.tar.gz 7 | wrapdb_version = 0.5-1 8 | 9 | [provide] 10 | intl = intl_dep 11 | -------------------------------------------------------------------------------- /subprojects/cereal.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = cereal-1.3.2 3 | source_url = https://github.com/USCiLab/cereal/archive/v1.3.2.tar.gz 4 | source_filename = cereal-1.3.2.tar.gz 5 | source_hash = 16a7ad9b31ba5880dac55d62b5d6f243c3ebc8d46a3514149e56b5e7ea81f85f 6 | patch_filename = cereal_1.3.2-1_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/cereal_1.3.2-1/get_patch 8 | patch_hash = fd2f047a40a0d291c643fdafe4ce743f0eadbef667b6afe43a332e1ba0862603 9 | 10 | [provide] 11 | cereal = cereal_dep 12 | 13 | -------------------------------------------------------------------------------- /docs/requirements.in: -------------------------------------------------------------------------------- 1 | # FastSlide Documentation Dependencies 2 | # Base requirements - use pip_compile to generate lock files 3 | 4 | # Core Sphinx 5 | sphinx>=7.0.0 6 | sphinx-rtd-theme>=2.0.0 7 | 8 | # Breathe (Doxygen integration) 9 | breathe>=4.35.0 10 | 11 | # Sphinx extensions 12 | sphinx-design>=0.5.0 13 | sphinx-copybutton>=0.5.0 14 | sphinx-inline-tabs>=2023.4.21 15 | sphinxcontrib-mermaid>=0.9.0 16 | sphinxext-opengraph>=0.9.0 17 | sphinx-autodoc-typehints>=2.0.0 18 | 19 | # MyST Parser (Markdown support) 20 | myst-parser>=2.0.0 21 | 22 | matplotlib>=3.10.0 -------------------------------------------------------------------------------- /subprojects/zlib.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = zlib-1.3.1 3 | source_url = http://zlib.net/fossils/zlib-1.3.1.tar.gz 4 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/zlib_1.3.1-2/zlib-1.3.1.tar.gz 5 | source_filename = zlib-1.3.1.tar.gz 6 | source_hash = 9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23 7 | patch_filename = zlib_1.3.1-2_patch.zip 8 | patch_url = https://wrapdb.mesonbuild.com/v2/zlib_1.3.1-2/get_patch 9 | patch_hash = 9cacea02e1119964bc51e92dd2359b14df723a36cfe0df1c78d55d9c9f2763ae 10 | wrapdb_version = 1.3.1-2 11 | 12 | [provide] 13 | zlib = zlib_dep 14 | -------------------------------------------------------------------------------- /subprojects/lz4.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = lz4-1.10.0 3 | source_url = https://github.com/lz4/lz4/archive/v1.10.0.tar.gz 4 | source_filename = lz4-1.10.0.tgz 5 | source_hash = 537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b 6 | patch_filename = lz4_1.10.0-2_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/lz4_1.10.0-2/get_patch 8 | patch_hash = ce568b4e1a7a593bb233f3ec97af88ceb850524cef802fe3f916b21d8a79b6b6 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/lz4_1.10.0-2/lz4-1.10.0.tgz 10 | wrapdb_version = 1.10.0-2 11 | 12 | [provide] 13 | liblz4 = liblz4_dep 14 | -------------------------------------------------------------------------------- /subprojects/liblzma.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = xz-5.2.12 3 | source_url = http://tukaani.org/xz/xz-5.2.12.tar.xz 4 | source_filename = xz-5.2.12.tar.xz 5 | source_hash = f79a92b84101d19d76be833aecc93e68e56065b61ec737610964cd4f6c54ff2e 6 | patch_filename = liblzma_5.2.12-3_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/liblzma_5.2.12-3/get_patch 8 | patch_hash = bf9eb44c6ba8d5157d5fdcc35a3d5a7a9d409a6c4ae696122bbb9e2d9d12467a 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/liblzma_5.2.12-3/xz-5.2.12.tar.xz 10 | wrapdb_version = 5.2.12-3 11 | 12 | [provide] 13 | liblzma = lzma_dep 14 | -------------------------------------------------------------------------------- /subprojects/fmt.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = fmt-11.2.0 3 | source_url = https://github.com/fmtlib/fmt/archive/11.2.0.tar.gz 4 | source_filename = fmt-11.2.0.tar.gz 5 | source_hash = bc23066d87ab3168f27cef3e97d545fa63314f5c79df5ea444d41d56f962c6af 6 | patch_filename = fmt_11.2.0-2_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/fmt_11.2.0-2/get_patch 8 | patch_hash = cc555cbfc9e334d5b670763894586ad6fbaf7f85eb5e67221cfe519b919c6542 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fmt_11.2.0-2/fmt-11.2.0.tar.gz 10 | wrapdb_version = 11.2.0-2 11 | 12 | [provide] 13 | dependency_names = fmt 14 | -------------------------------------------------------------------------------- /subprojects/libtiff.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = tiff-4.7.0 3 | source_url = https://download.osgeo.org/libtiff/tiff-4.7.0.tar.xz 4 | source_filename = tiff-4.7.0.tar.gz 5 | source_hash = 273a0a73b1f0bed640afee4a5df0337357ced5b53d3d5d1c405b936501f71017 6 | patch_filename = libtiff_4.7.0-1_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/libtiff_4.7.0-1/get_patch 8 | patch_hash = 1c0f574783528f109887f8b4387c35089dc9e01ec1ca34eef75872757ab0caec 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libtiff_4.7.0-1/tiff-4.7.0.tar.gz 10 | wrapdb_version = 4.7.0-1 11 | 12 | [provide] 13 | libtiff-4 = libtiff4_dep 14 | -------------------------------------------------------------------------------- /subprojects/pugixml.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = pugixml-1.15 3 | source_url = https://github.com/zeux/pugixml/archive/v1.15.tar.gz 4 | source_filename = pugixml-1.15.tar.gz 5 | source_hash = b39647064d9e28297a34278bfb897092bf33b7c487906ddfc094c9e8868bddcb 6 | patch_filename = pugixml_1.15-1_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/pugixml_1.15-1/get_patch 8 | patch_hash = 71283431485c5e014c1e360033e84c56fda04171f9ba3bb48f37dd30c48e1d57 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/pugixml_1.15-1/pugixml-1.15.tar.gz 10 | wrapdb_version = 1.15-1 11 | 12 | [provide] 13 | pugixml = pugixml_dep 14 | -------------------------------------------------------------------------------- /subprojects/zstd.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = zstd-1.5.7 3 | source_url = https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz 4 | source_filename = zstd-1.5.7.tar.gz 5 | source_hash = eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3 6 | patch_filename = zstd_1.5.7-3_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/zstd_1.5.7-3/get_patch 8 | patch_hash = 75ccb7b5bd26ae38b9d2db40ea4915504137835c15857ea833e70af1fe6f8686 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/zstd_1.5.7-3/zstd-1.5.7.tar.gz 10 | wrapdb_version = 1.5.7-3 11 | 12 | [provide] 13 | libzstd = libzstd_dep 14 | -------------------------------------------------------------------------------- /subprojects/pybind11.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = pybind11-3.0.0 3 | source_url = https://github.com/pybind/pybind11/archive/refs/tags/v3.0.0.tar.gz 4 | source_filename = pybind11-3.0.0.tar.gz 5 | source_hash = 453b1a3e2b266c3ae9da872411cadb6d693ac18063bd73226d96cfb7015a200c 6 | patch_filename = pybind11_3.0.0-1_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/pybind11_3.0.0-1/get_patch 8 | patch_hash = 51ef27fd76207c530fb54017aaa166ff02bb49f12308d497635fefbc1bc6a560 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/pybind11_3.0.0-1/pybind11-3.0.0.tar.gz 10 | wrapdb_version = 3.0.0-1 11 | 12 | [provide] 13 | pybind11 = pybind11_dep 14 | -------------------------------------------------------------------------------- /subprojects/google-benchmark.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = benchmark-1.8.4 3 | source_url = https://github.com/google/benchmark/archive/refs/tags/v1.8.4.tar.gz 4 | source_filename = benchmark-1.8.4.tar.gz 5 | source_hash = 3e7059b6b11fb1bbe28e33e02519398ca94c1818874ebed18e504dc6f709be45 6 | patch_filename = google-benchmark_1.8.4-4_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/google-benchmark_1.8.4-4/get_patch 8 | patch_hash = d1af464d29eb42442c41bc0629f94dbc2e390d9a8656461a14adfee84bcb6250 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/google-benchmark_1.8.4-4/benchmark-1.8.4.tar.gz 10 | wrapdb_version = 1.8.4-4 11 | 12 | [provide] 13 | dependency_names = benchmark, benchmark_main 14 | -------------------------------------------------------------------------------- /docs/source/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = . 9 | BUILDDIR = ../build/html 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /subprojects/libwebp.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = libwebp-1.5.0 3 | source_url = https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.5.0.tar.gz 4 | source_filename = libwebp-1.5.0.tar.gz 5 | source_hash = 7d6fab70cf844bf6769077bd5d7a74893f8ffd4dfb42861745750c63c2a5c92c 6 | patch_filename = libwebp_1.5.0-1_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/libwebp_1.5.0-1/get_patch 8 | patch_hash = 5e94fed7f748f73500a30eee83cc194a2a2b9f906145184d79a19feb14b4aca0 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libwebp_1.5.0-1/libwebp-1.5.0.tar.gz 10 | wrapdb_version = 1.5.0-1 11 | 12 | [provide] 13 | dependency_names = libsharyuv, libwebp, libwebpdecoder, libwebpdemux, libwebpmux 14 | -------------------------------------------------------------------------------- /subprojects/libjpeg-turbo.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = libjpeg-turbo-3.1.2 3 | source_url = https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.2/libjpeg-turbo-3.1.2.tar.gz 4 | source_filename = libjpeg-turbo-3.1.2.tar.gz 5 | source_hash = 8f0012234b464ce50890c490f18194f913a7b1f4e6a03d6644179fa0f867d0cf 6 | patch_filename = libjpeg-turbo_3.1.2-1_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/libjpeg-turbo_3.1.2-1/get_patch 8 | patch_hash = 5f4f4698f40f25a47709e54a5c170c305e59a3bb13e5b0c9fdfd909865357bfc 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libjpeg-turbo_3.1.2-1/libjpeg-turbo-3.1.2.tar.gz 10 | wrapdb_version = 3.1.2-1 11 | 12 | [provide] 13 | dependency_names = libjpeg, libturbojpeg 14 | -------------------------------------------------------------------------------- /subprojects/gtest.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = googletest-1.17.0 3 | source_url = https://github.com/google/googletest/archive/refs/tags/v1.17.0.tar.gz 4 | source_filename = googletest-1.17.0.tar.gz 5 | source_hash = 65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c 6 | patch_filename = gtest_1.17.0-4_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/gtest_1.17.0-4/get_patch 8 | patch_hash = 3abf7662d09db706453a5b064a1e914678c74b9d9b0b19382747ca561d0d8750 9 | source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/gtest_1.17.0-4/googletest-1.17.0.tar.gz 10 | wrapdb_version = 1.17.0-4 11 | 12 | [provide] 13 | gtest = gtest_dep 14 | gtest_main = gtest_main_dep 15 | gmock = gmock_dep 16 | gmock_main = gmock_main_dep 17 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | # Include build system files 2 | include pyproject.toml 3 | include meson.build 4 | include meson_options.txt 5 | 6 | # Include license and documentation 7 | include LICENSE 8 | include README_PUBLIC.md 9 | 10 | # Include all source files 11 | recursive-include src *.cpp *.c 12 | recursive-include include *.h *.hpp 13 | 14 | # Include third-party vendored code 15 | recursive-include third_party *.cpp *.c *.h *.hpp 16 | 17 | # Include subproject wraps for dependency management 18 | recursive-include subprojects *.wrap 19 | 20 | # Exclude build artifacts and caches 21 | global-exclude *.pyc 22 | global-exclude *.pyo 23 | global-exclude __pycache__ 24 | global-exclude *.so 25 | global-exclude *.dylib 26 | global-exclude *.dll 27 | prune builddir 28 | prune .git 29 | 30 | -------------------------------------------------------------------------------- /docs/doxygen_footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
10 | 11 | 12 |