Repository dependencies
NOTE
This page is generated from the public repositories of the versatiles-org organisation. To correct or extend it, change scripts/dependency-graph.yaml or the repository it describes — edits made here are overwritten.
VersaTiles is not one program but a few dozen repositories that build on each other: a Rust core, npm packages, Docker images, tile-generation pipelines and the sites that serve the result. Those links are easy to lose track of, because they are written down in a different place every time — a package.json here, a FROM line there, a curl in a shell script somewhere else.
This page collects all of them in one place.
Overview
An arrow points from a repository to what it depends on, and the layout runs left to right: whatever is built on most ends up on the right, with everything that builds on it to the left. Line style says how the dependency is expressed; colour says how much the repository matters to someone using VersaTiles, from the core it cannot do without to the helpers only its maintainers touch.
A graph of the whole organisation is a lot at once, so it can be narrowed down — by one kind of dependency at a time, or to the repositories of a given category.
Preparing the layout…
Repositories
Core
What VersaTiles cannot do without — the container format, the software that reads and serves it, and the styles, fonts and frontend that turn tiles into a map.
| Repository | Description | Depends on | Used by |
|---|---|---|---|
| node-versatiles-container | Node.js library for reading VersaTiles container files. | 2 | 4 |
| versatiles-fonts | Repository of open-source SDF fonts optimized for MapLibre GL JS rendering. | 2 | 2 |
| versatiles-frontend | Frontend web applications for exploring VersaTiles maps and datasets. | 7 | 7 |
| versatiles-glyphs-rs | Rust implementation of a signed-distance-field (SDF) glyph renderer used in map rendering. | 1 | 2 |
| versatiles-rs | Core Rust implementation of the VersaTiles toolkit for converting, validating, and serving map tiles in multiple formats. | 2 | 8 |
| versatiles-spec | Specification for VersaTiles containers. | 0 | 2 |
| versatiles-style | Toolkit for generating MapLibre styles. | 1 | 11 |
Tools
Optional extras built on top of the core — libraries, editors, renderers and alternative servers for developers who want more than a basemap.
| Repository | Description | Depends on | Used by |
|---|---|---|---|
| maplibre-versatiles-styler | MapLibre GL JS plugin for editing and managing VersaTiles map styles directly in the browser. | 2 | 1 |
| node-versatiles-google-cloud | Google Cloud integration tools for hosting and serving VersaTiles data. | 3 | 0 |
| node-versatiles-server | Node.js implementation of a VersaTiles tile server. | 4 | 0 |
| node-versatiles-svelte | Svelte components and bindings for displaying VersaTiles data in MapLibre GL JS. | 2 | 2 |
| photon-stack | — | 0 | 3 |
| versatiles-choro | Modular Docker-based pipeline for creating interactive choropleth maps | 3 | 0 |
| versatiles-map-animation | Browser-based editor for composing keyframe camera animations on a VersaTiles map. | 1 | 0 |
| versatiles-map-editor | — | 3 | 0 |
| versatiles-studio | Cross-platform desktop application for opening, inspecting, styling and converting map tiles. | 5 | 1 |
| versatiles-svg-renderer | renders maps as SVG | 2 | 1 |
Tile production
Pipelines that turn open data into the tilesets VersaTiles publishes. Needed only to build tiles rather than download them.
| Repository | Description | Depends on | Used by |
|---|---|---|---|
| elevation | — | 1 | 0 |
| landcover-vectors | Generate landcover vector tiles from ESA Worldcover | 1 | 0 |
| opendem-gebco-bathymetry | Versatiles Container from GEBCO Bathymetry Data provided by OpenDEM | 1 | 0 |
| orthophotos | Processing pipeline and hosting setup for global and regional orthophoto layers. | 3 | 0 |
| planetiler | Flexible tool to build planet-scale vector tilesets from OpenStreetMap data fast | 0 | 2 |
| planetiler-shortbread | Native Java Planetiler profile generating vector tiles in the Shortbread schema | 1 | 0 |
| shortbread-tilemaker | Tilemaker configuration for generating Shortbread vector tiles. | 0 | 1 |
Ecosystem
What surrounds the software — documentation, the websites, the public tile and download servers, and the packages it is installed from.
| Repository | Description | Depends on | Used by |
|---|---|---|---|
| .github | Shared GitHub workflows, templates, and issue configurations for all VersaTiles repositories. | 0 | 0 |
| consortium | — | 0 | 0 |
| download.versatiles.org | Data download hub for VersaTiles datasets. | 3 | 0 |
| editor | Modified Maputnik for Versatiles Styles | 0 | 0 |
| homebrew-versatiles | Homebrew tap for installing VersaTiles CLI tools on macOS. | 3 | 3 |
| maputnik | An open source visual editor for the 'MapLibre Style Specification' | 0 | 0 |
| playground | Interactive playground demonstrating how to use VersaTiles in web applications. | 2 | 1 |
| shortbread-docs | Documentation of the Shortbread vector tile schema | 0 | 0 |
| tiles.versatiles.org | Tile hosting service for public VersaTiles datasets. | 2 | 0 |
| tools | Utility scripts and helper tools built around the VersaTiles ecosystem. | 5 | 1 |
| versatiles-docker | Docker images and build scripts for the VersaTiles ecosystem. | 4 | 4 |
| versatiles-documentation | Documentation for the VersaTiles ecosystem. | 1 | 0 |
| versatiles-org.github.io | Source code for the public website at versatiles.org. | 3 | 1 |
Internal helpers
Housekeeping for the maintainers. Nothing here is needed to use VersaTiles.
| Repository | Description | Depends on | Used by |
|---|---|---|---|
| node-release-tool | Helper tool for automating Node.js package releases across VersaTiles repositories. | 0 | 13 |
How each link is declared
A dependency can be written down in half a dozen different ways, each one found in a different kind of file. Every arrow in the graph above comes from one of the lines listed below, and can be followed back to it.
npm packages
The repository lists a @versatiles/… package among its npm dependencies.
Where these 32 links come from
| From | To | Found | Source |
|---|---|---|---|
| download.versatiles.org | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| download.versatiles.org | node-versatiles-container | @versatiles/container@^2.0.2 | package.json |
| download.versatiles.org | node-versatiles-svelte | @versatiles/svelte@^3.0.0 | package.json |
| maplibre-versatiles-styler | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| maplibre-versatiles-styler | versatiles-style | @versatiles/style@^6.4.0 | package.json |
| node-versatiles-container | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| node-versatiles-google-cloud | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| node-versatiles-google-cloud | node-versatiles-container | @versatiles/container@^2.0.2 | package.json |
| node-versatiles-google-cloud | versatiles-style | @versatiles/style@^6.4.0 | package.json |
| node-versatiles-server | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| node-versatiles-server | node-versatiles-container | @versatiles/container@^2.0.2 | package.json |
| node-versatiles-server | versatiles-style | @versatiles/style@^6.4.0 | package.json |
| node-versatiles-svelte | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| node-versatiles-svelte | versatiles-style | @versatiles/style@^6.4.0 | package.json |
| orthophotos | node-release-tool | @versatiles/release-tool@^2.9.1 | package.json |
| tools | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| tools | node-versatiles-container | @versatiles/container@^2.0.1 | package.json |
| tools | node-versatiles-svelte | @versatiles/svelte@^2.3.2 | package.json |
| versatiles-choro | versatiles-rs | @versatiles/versatiles-rs@^4.15.0 | package.json |
| versatiles-choro | versatiles-style | @versatiles/style@^6.1.1 | package.json |
| versatiles-frontend | maplibre-versatiles-styler | maplibre-versatiles-styler@^2.4.0 | package.json |
| versatiles-frontend | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| versatiles-frontend | versatiles-style | @versatiles/style@^6.4.0 | package.json |
| versatiles-frontend | versatiles-svg-renderer | @versatiles/maplibre-svg-export@^2.3.0 | package.json |
| versatiles-map-animation | versatiles-style | @versatiles/style@^6.1.1 | package.json |
| versatiles-map-editor | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| versatiles-map-editor | versatiles-style | @versatiles/style@^6.4.0 | package.json |
| versatiles-org.github.io | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| versatiles-studio | versatiles-style | @versatiles/style@^5.13.1 | package.json |
| versatiles-style | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| versatiles-svg-renderer | node-release-tool | @versatiles/release-tool@^2.20.0 | package.json |
| versatiles-svg-renderer | versatiles-style | @versatiles/style@^6.4.0 | package.json |
Rust crates
The repository depends on one of the project’s crates in Cargo.toml.
Where these 5 links come from
| From | To | Found | Source |
|---|---|---|---|
| versatiles-studio | versatiles-rs | versatiles | Cargo.toml |
| versatiles-studio | versatiles-rs | versatiles_container | Cargo.toml |
| versatiles-studio | versatiles-rs | versatiles_core | Cargo.toml |
| versatiles-studio | versatiles-rs | versatiles_geometry | Cargo.toml |
| versatiles-studio | versatiles-rs | versatiles_pipeline | Cargo.toml |
Docker images
A Dockerfile builds on an image produced by another repository.
Where these 2 links come from
| From | To | Found | Source |
|---|---|---|---|
| orthophotos | versatiles-docker | ghcr.io/versatiles-org/versatiles-gdal | Dockerfile |
| versatiles-choro | versatiles-docker | versatiles/versatiles-tippecanoe | docker/Dockerfile |
Downloaded artifacts
Build scripts or runtime code fetch release assets or raw files from another repository.
Where these 30 links come from
| From | To | Found | Source |
|---|---|---|---|
| homebrew-versatiles | versatiles-glyphs-rs | "versatiles-org/versatiles-glyphs-rs" | bin/make_formula_glyphs.sh |
| homebrew-versatiles | versatiles-rs | github.com/versatiles-org/versatiles-rs/releases | bin/make_formula.sh |
| homebrew-versatiles | versatiles-studio | "versatiles-org/versatiles-studio" | bin/make_cask.sh |
| node-versatiles-container | versatiles-spec | github.com/versatiles-org/versatiles-spec/blob | src/index.ts |
| node-versatiles-container | versatiles-spec | github.com/versatiles-org/versatiles-spec/blob | src/lib/interfaces.ts |
| node-versatiles-server | versatiles-frontend | github.com/versatiles-org/versatiles-frontend/releases | scripts/update-frontend.sh |
| orthophotos | versatiles-frontend | github.com/versatiles-org/versatiles-frontend/releases | src/server/frontend.ts |
| tiles.versatiles.org | versatiles-frontend | github.com/versatiles-org/versatiles-frontend/releases | bin/frontend/update.sh |
| tiles.versatiles.org | versatiles-style | github.com/versatiles-org/versatiles-style/releases | bin/styles/update.sh |
| tools | versatiles-frontend | github.com/versatiles-org/versatiles-frontend/releases | src/routes/setup_server/generate_code.ts |
| tools | versatiles-rs | github.com/versatiles-org/versatiles-rs/releases | src/routes/setup_server/generate_code.ts |
| versatiles-choro | versatiles-rs | github.com/versatiles-org/versatiles-rs.git | docker/Dockerfile |
| versatiles-docker | planetiler | github.com/versatiles-org/planetiler.git | versatiles-planetiler/Dockerfile |
| versatiles-docker | shortbread-tilemaker | git clone --depth 1 -q --branch versatiles https://github.com/versatiles-org/shortbread-tilemaker | versatiles-tilemaker/Dockerfile |
| versatiles-docker | versatiles-frontend | "versatiles-org/versatiles-frontend" | versatiles-frontend/build.sh |
| versatiles-docker | versatiles-frontend | github.com/versatiles-org/versatiles-frontend/releases | versatiles-frontend/Dockerfile |
| versatiles-docker | versatiles-frontend | github.com/versatiles-org/versatiles-frontend/releases | versatiles-nginx/scripts/fetch_frontend.sh |
| versatiles-docker | versatiles-rs | "versatiles-org/versatiles-rs" | scripts/utils.sh |
| versatiles-docker | versatiles-rs | github.com/versatiles-org/versatiles-rs.git | versatiles-gdal/Dockerfile |
| versatiles-docker | versatiles-rs | github.com/versatiles-org/versatiles-rs/releases | scripts/download_versatiles_binary.sh |
| versatiles-documentation | versatiles-spec | 'versatiles-org/versatiles-spec' | scripts/sync-spec.ts |
| versatiles-fonts | versatiles-glyphs-rs | github.com/versatiles-org/versatiles-glyphs-rs/raw | .github/workflows/ci.yml |
| versatiles-fonts | versatiles-glyphs-rs | github.com/versatiles-org/versatiles-glyphs-rs/raw | .github/workflows/release.yml |
| versatiles-fonts | versatiles-glyphs-rs | github.com/versatiles-org/versatiles-glyphs-rs/raw | scripts/build.ts |
| versatiles-fonts | versatiles-glyphs-rs | github.com/versatiles-org/versatiles-glyphs-rs/raw | scripts/glyphs.ts |
| versatiles-frontend | versatiles-fonts | github.com/versatiles-org/versatiles-fonts/releases | src/config/index.ts |
| versatiles-frontend | versatiles-style | github.com/versatiles-org/versatiles-style/releases | src/config/index.ts |
| versatiles-studio | versatiles-fonts | 'versatiles-org/versatiles-fonts' | scripts/update-assets.ts |
| versatiles-studio | versatiles-frontend | 'versatiles-org/versatiles-frontend' | scripts/update-assets.ts |
| versatiles-studio | versatiles-style | 'versatiles-org/versatiles-style' | scripts/update-assets.ts |
CI and release automation
A GitHub Actions workflow uses an action, reusable workflow or dispatch of another repository.
Where these 9 links come from
| From | To | Found | Source |
|---|---|---|---|
| planetiler-shortbread | planetiler | versatiles-org/planetiler | .github/workflows/ci.yml |
| versatiles-fonts | versatiles-frontend | gh workflow run --repo versatiles-org/versatiles-frontend | .github/workflows/release.yml |
| versatiles-frontend | versatiles-docker | api.github.com/repos/versatiles-org/versatiles-docker/actions/workflows/release.yml/dispatches | .github/workflows/release.yml |
| versatiles-glyphs-rs | homebrew-versatiles | gh workflow run --repo versatiles-org/homebrew-versatiles | .github/workflows/release.yml |
| versatiles-org.github.io | playground | gh workflow run --repo versatiles-org/playground | .github/workflows/gh-release.yml |
| versatiles-org.github.io | tools | gh workflow run --repo versatiles-org/tools | .github/workflows/gh-release.yml |
| versatiles-rs | homebrew-versatiles | gh workflow run --repo versatiles-org/homebrew-versatiles | .github/workflows/release.yml |
| versatiles-rs | versatiles-docker | gh workflow run --repo versatiles-org/versatiles-docker | .github/workflows/release.yml |
| versatiles-studio | homebrew-versatiles | gh workflow run --repo versatiles-org/homebrew-versatiles | .github/workflows/release.yml |
Declared by hand
A dependency no parser can see — recorded in scripts/dependency-graph.yaml with a note.
Where these 7 links come from
| From | To | Found | Source |
|---|---|---|---|
| elevation | versatiles-rs | runs the versatiles CLI to convert and merge the elevation tiles | scripts/dependency-graph.yaml |
| landcover-vectors | versatiles-rs | runs the versatiles CLI to assemble and merge the landcover tiles | scripts/dependency-graph.yaml |
| opendem-gebco-bathymetry | versatiles-rs | runs the versatiles CLI to pack the bathymetry tiles into a container | scripts/dependency-graph.yaml |
| playground | photon-stack | the geocoder example queries geocode.versatiles.org, which this stack serves | scripts/dependency-graph.yaml |
| playground | versatiles-org.github.io | builds every example page from the template at versatiles.org/playground.html | scripts/dependency-graph.yaml |
| versatiles-frontend | photon-stack | the search box queries geocode.versatiles.org, which this stack serves | scripts/dependency-graph.yaml |
| versatiles-map-editor | photon-stack | the place search queries geocode.versatiles.org, which this stack serves | scripts/dependency-graph.yaml |
How this page is made
scripts/build-dependency-graph.ts reads the public repositories of the organisation and looks for dependencies in the places they are actually declared: package.json, Cargo.toml, Dockerfiles, GitHub Actions workflows, and build or install scripts that fetch release assets. Markdown is deliberately not searched — README badges and prose links mention half the organisation and say nothing about what a build needs.
Every arrow therefore has a file and a line behind it, listed in the tables above and available as machine-readable data in dependency-graph.json, published alongside this page as /dependency-graph.json. What no parser can see — operational dependencies, for instance — is declared by hand in scripts/dependency-graph.yaml, which is also where false positives are filtered out and repositories are assigned to the categories above.
The following repositories are left out:
- planetiler-shortbread-docker — archived
- shortbread-compare-demo — archived
- versatiles-generator — archived
Private repositories are not included, and neither are dependencies on software outside the organisation.