Blazing fast and lightweight PostGIS, MBtiles and PMtiles tile server, tile generation, and mbtiles tooling.
This report summarizes scanner evidence for maplibre/martin, a Rust project with 4,038 GitHub stars. SynthScan examined 224,868 lines of code across 918 source files, recording 506 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 2.5 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 493 finding(s).
Are imports declared and package/API names verified? 1 finding(s).
Are wrappers, guards, and repeated structures necessary? 116 finding(s).
Which changes need focused human review? 506 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 506 distinct pattern matches across 7 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deny.toml | 41 | COMMENT | |
| LOW | zensical.toml | 141 | ]} | COMMENT |
| LOW | zensical.toml | 161 | # | COMMENT |
| LOW | zensical.toml | 181 | favicon = "images/favicon.ico" | COMMENT |
| LOW | zensical.toml | 201 | features = [ | COMMENT |
| LOW | zensical.toml | 221 | # https://zensical.org/docs/authoring/code-blocks/#code-annotations | COMMENT |
| LOW | zensical.toml | 241 | # at the same time when the user chooses their language in one. | COMMENT |
| LOW | zensical.toml | 261 | # user to navigate to a next or previous page. | COMMENT |
| LOW | zensical.toml | 281 | # In order to provide a better user experience on slow connections when | COMMENT |
| LOW | zensical.toml | 301 | # When tabs are enabled, top-level sections are rendered in a menu layer | COMMENT |
| LOW | zensical.toml | 321 | COMMENT | |
| LOW | zensical.toml | 361 | media = "(prefers-color-scheme: dark)" | COMMENT |
| LOW | zensical.toml | 381 | # "docs_dir" or it can be a path to an icon. | COMMENT |
| LOW | martin-core/tests/tile_wkb_test.rs | 321 | #[rstest] | COMMENT |
| LOW | martin-core/src/error.rs | 1 | //! Transport-independent classification of failures. | COMMENT |
| LOW | martin-core/src/cache_zoom_range.rs | 1 | //! Zoom-level bounds for tile caching. | COMMENT |
| LOW | martin-core/src/resources/styles/render_pool.rs | 41 | COMMENT | |
| LOW | martin-core/src/resources/styles/render_pool.rs | 141 | /// See [`RenderPool::new`]. | COMMENT |
| LOW | martin-core/src/resources/styles/error.rs | 1 | #[cfg(all(feature = "rendering", target_os = "linux"))] | COMMENT |
| LOW | martin-core/src/resources/styles/error.rs | 21 | #[cfg(all(feature = "rendering", target_os = "linux"))] | COMMENT |
| LOW | martin-core/src/resources/styles/tile_size.rs | 1 | use std::num::NonZeroU32; | COMMENT |
| LOW | martin-core/src/resources/styles/mod.rs | 1 | //! Style processing and serving for map tile rendering. | COMMENT |
| LOW | martin-core/src/resources/styles/mod.rs | 81 | #[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)] | COMMENT |
| LOW | martin-core/src/resources/sprites/mod.rs | 1 | //! Sprite processing and serving for map tile rendering. | COMMENT |
| LOW | martin-core/src/resources/sprites/mod.rs | 101 | /// Sprite source metadata. | COMMENT |
| LOW | martin-core/src/resources/fonts/mod.rs | 1 | //! Font processing and serving for map tile rendering. | COMMENT |
| LOW | martin-core/src/resources/fonts/mod.rs | 121 | /// extension, so [`FontFormat::VARIANTS`] doubles as the list of recognised | COMMENT |
| LOW | martin-core/src/resources/fonts/mod.rs | 141 | /// Font family name (e.g., "Arial"). | COMMENT |
| LOW | martin-core/src/resources/fonts/mod.rs | 241 | COMMENT | |
| LOW | martin-core/src/tiles/error.rs | 1 | #[cfg(feature = "cog")] | COMMENT |
| LOW | martin-core/src/tiles/error.rs | 21 | #[cfg(feature = "mbtiles")] | COMMENT |
| LOW | martin-core/src/tiles/error.rs | 41 | #[cfg(feature = "passthrough")] | COMMENT |
| LOW | martin-core/src/tiles/tile.rs | 1 | use base64::Engine as _; | COMMENT |
| LOW | martin-core/src/tiles/catalog.rs | 1 | //! Catalog for managing tile source metadata and discovery. | COMMENT |
| LOW | martin-core/src/tiles/catalog.rs | 21 | /// | COMMENT |
| LOW | martin-core/src/tiles/mod.rs | 1 | //! Tile management and representation for Martin tile server. | COMMENT |
| LOW | martin-core/src/tiles/any.rs | 41 | COMMENT | |
| LOW | martin-core/src/tiles/geojson/source.rs | 21 | use crate::tiles::geojson::rect::Rect; | COMMENT |
| LOW | martin-core/src/tiles/hillshade/light.rs | 1 | //! The direction the terrain is lit from. | COMMENT |
| LOW | martin-core/src/tiles/hillshade/shade.rs | 1 | //! The hillshade bake from Mapzen *normal* tiles to L8 grayscale. | COMMENT |
| LOW | martin-core/src/tiles/hillshade/shade.rs | 21 | use crate::tiles::neighbourhood::{CHANNELS, DEFAULT_TILE_SIZE, GRID_SIDE}; | COMMENT |
| LOW | martin-core/src/tiles/passthrough/error.rs | 1 | //! Error types for the `passthrough` HTTP upstream source. | COMMENT |
| LOW | martin-core/src/tiles/contour/isolines.rs | 141 | /// | COMMENT |
| LOW | martin-core/src/tiles/cog/stac.rs | 21 | /// and `blue`, or the first three if the asset does not name its bands. | COMMENT |
| LOW | martin-core/src/tiles/cog/errors.rs | 1 | //! Error types for `Cloud Optimized GeoTIFF` operations. | COMMENT |
| LOW | martin-core/src/tiles/postgres/connection_string.rs | 1 | //! A wrapper around a `PostgreSQL` connection string that redacts its password when displayed. | COMMENT |
| LOW | martin-core/src/tiles/postgres/source.rs | 381 | /// Whether an empty tile implies that all tiles below it are empty. | COMMENT |
| LOW | martin-core/src/tiles/postgres/errors.rs | 21 | #[non_exhaustive] | COMMENT |
| LOW | martin-core/src/tiles/postgres/scan.rs | 41 | fn from(err: PostgresError) -> Self { | COMMENT |
| LOW | martin-core/src/tiles/duckdb/errors.rs | 21 | /// The `DuckDB` connection could not be opened. | COMMENT |
| LOW | martin-core/src/tiles/duckdb/errors.rs | 61 | /// The `DuckDB` connection failed a pool recycle health check. | COMMENT |
| LOW | martin-core/src/overlay/error.rs | 1 | use maplibre_native::{GeoJsonError, StyleError}; | COMMENT |
| LOW | martin-core/src/overlay/model.rs | 1 | //! Typed boundary intermediate representation for static-render overlays. | COMMENT |
| LOW | martin-core/src/overlay/model.rs | 41 | /// The application layer builds this from the wire format, dropping unknown keys (`title`, `id`, ...). | COMMENT |
| LOW | martin-core/src/overlay/model.rs | 61 | pub line_opacity: Option<f32>, | COMMENT |
| LOW | cog-tiles-py/src/py.rs | 801 | /// The coroutine `__anext__` returns, since `pyo3` cannot make `__anext__` itself `async`. | COMMENT |
| LOW | cog-tiles-py/src/py.rs | 861 | let source = spawn(cog.open_source()?).await?.map_err(to_py)?; | COMMENT |
| LOW | cog-tiles-py/src/py.rs | 961 | /// `cog_tiles.<function>` with `keywords` bound, for `__reduce__` to restore keyword-only arguments. | COMMENT |
| LOW | cog-tiles-py/src/py.rs | 1101 | } | COMMENT |
| LOW | debian/config.yaml | 21 | # max_feature_count: 1000 | COMMENT |
| 325 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | cog-tiles-py/tests/test_async.py | 15 | def test_open_async_opens_the_cog_open_opens(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_async.py | 21 | def test_open_mosaic_async_opens_the_mosaic_open_mosaic_opens(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_async.py | 27 | def test_tile_async_returns_the_tile_tile_returns(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_async.py | 32 | def test_tile_async_returns_none_for_an_empty_tile(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_async.py | 37 | def test_tile_pixels_async_returns_the_pixels_tile_pixels_returns(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_async.py | 43 | def test_read_async_returns_the_raster_read_returns(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_async.py | 51 | def test_read_async_raises_value_error_for_an_unknown_crs(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_async.py | 57 | def test_async_for_yields_the_tiles_for_yields(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_async.py | 66 | def test_tile_async_calls_run_concurrently_on_one_event_loop(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_async.py | 75 | def test_a_cancelled_read_async_raises_cancelled_error(): | CODE |
| LOW | cog-tiles-py/tests/test_async.py | 88 | def test_tile_async_leaves_the_event_loop_free_while_it_fetches(server): | CODE |
| LOW | cog-tiles-py/tests/test_async.py | 104 | def test_cancelling_read_async_stops_its_fetches(server): | CODE |
| LOW | cog-tiles-py/tests/test_tile_index.py | 24 | def test_a_tile_is_painted_from_the_files_the_index_lists(): | CODE |
| LOW | cog-tiles-py/tests/test_tile_index.py | 29 | def test_a_tile_index_reports_its_layout_and_the_area_its_files_cover(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 40 | def test_a_tile_outside_the_zoom_range_is_none(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 46 | def test_one_band_paints_gray_tiles_with_alpha(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 53 | def test_read_stitches_the_tiles_of_an_area(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 60 | def test_tiles_iterates_over_the_tiles_in_the_index_bounds(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 78 | def test_invalid_tile_indexes_are_rejected(arguments, error, message): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 83 | def test_a_missing_tile_index_is_file_not_found(tmp_path): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 88 | def test_tile_indexes_re_encode_tiles(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 96 | def test_tile_indexes_survive_pickling(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 105 | def test_open_tile_index_async_opens_the_same_index(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_tile_index.py | 113 | def test_files_listed_by_url_are_read_over_http(tmp_path, fixture_server, prefix): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 35 | def test_a_jpeg_cog_returns_jpeg_tiles(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 40 | def test_a_zstd_cog_returns_png_tiles(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 45 | def test_an_empty_tile_is_none(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 50 | def test_a_tile_outside_the_bounds_is_none(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 55 | def test_a_tile_below_the_min_zoom_is_none(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 60 | def test_tile_pixels_are_the_decoded_tile(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 67 | def test_webp_tiles_decode_too(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 73 | def test_read_stitches_the_whole_image(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 84 | def test_read_crops_to_the_pixels_the_bbox_touches(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 93 | def test_read_defaults_to_the_highest_zoom(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 98 | def test_read_without_data_is_none(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 103 | def test_read_refuses_rasters_over_max_pixels(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 109 | def test_a_raster_converts_to_an_array(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 116 | def test_tiles_yields_every_tile_with_data(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 123 | def test_tiles_defaults_to_every_zoom_of_the_source(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 134 | def test_tiles_outside_the_source_are_skipped(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 139 | def test_a_tile_iterator_can_be_dropped_early(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 146 | def test_a_mosaic_reads_each_tile_from_its_file(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 156 | def test_a_mosaic_read_stitches_across_files(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 184 | def test_a_mosaic_needs_a_bbox_to_iterate(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 190 | def test_cogs_survive_pickling(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 197 | def test_mosaics_survive_pickling(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 204 | def test_threads_read_concurrently(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 213 | def test_importing_on_free_threaded_python_keeps_the_gil_disabled(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 222 | def test_a_forked_child_reads_with_its_own_runtime(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 234 | def test_a_missing_file_raises_file_not_found(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 239 | def test_an_unsupported_file_says_why(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 244 | def test_a_tile_past_the_zoom_raises_value_error(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 250 | def test_an_inverted_bbox_raises_value_error(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 256 | def test_an_unknown_crs_raises_value_error(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 262 | def test_zero_concurrency_raises_value_error(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 268 | def test_an_invalid_template_raises_value_error(): | CODE |
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 273 | def test_a_cog_over_http_returns_the_tiles_of_the_local_file(server): | CODE |
| LOW | cog-tiles-py/tests/test_cog_tiles.py | 24 | def test_open_reports_the_tile_layout(): | CODE |
| LOW | cog-tiles-py/tests/test_cog_tiles.py | 167 | def test_a_mosaic_places_untagged_striped_files_by_their_name(tmp_path): | CODE |
| LOW | cog-tiles-py/tests/test_format.py | 18 | def test_format_webp_re_encodes_png_tiles_as_webp(): | CODE |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | zensical.toml | 167 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | zensical.toml | 169 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | zensical.toml | 368 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | zensical.toml | 373 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | zensical.toml | 378 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | zensical.toml | 1 | # ============================================================================ | COMMENT |
| MEDIUM | zensical.toml | 7 | # ============================================================================ | COMMENT |
| MEDIUM | zensical.toml | 338 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | zensical.toml | 346 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | zensical.toml | 392 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | zensical.toml | 512 | # ---------------------------------------------------------------------------- | STRING |
| MEDIUM | zensical.toml | 514 | # ---------------------------------------------------------------------------- | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | zensical.toml | 149 | # With the "extra_css" option you can add your own CSS styling to customize | COMMENT |
| MEDIUM⚡ | zensical.toml | 159 | # With the `extra_javascript` option you can add your own JavaScript to your | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/release.yml | 152 | # Create a personal access token | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/build-binary.yml | 51 | # Set RELEASE_MODE to '1' for release builds (push to main, releases, and manual workflow dispatches), | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | cog-tiles-py/tests/test_cog_tiles.py | 269 | with pytest.raises(ValueError, match="placeholder"): | CODE |