Table of contents:
- Installation: Linux, MacOS, NixOS, Docker, using
cargo install
, from source - Usage: convert tiles, serve tiles
VersaTiles is a Rust-based project designed for processing and serving tile data efficiently. It supports multiple tile formats and offers various functionalities for handling tile data.
Use the installation script to download the correct precompiled binary and copy it to /usr/local/bin/
:
curl -Ls "https://github.com/versatiles-org/versatiles-rs/raw/main/helpers/install-unix.sh" | bash
Install VersaTiles using Homebrew:
brew tap versatiles-org/versatiles
brew install versatiles
VersaTiles is available via nixpkgs beginning with 24.05. An up to date version is part of nixpkgs-unstable.
For installation add following snippet into your configuration.nix:
environment.systemPackages = with pkgs; [ versatiles ];
You can also use versatiles via shell environments:
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = with pkgs; [
versatiles
];
}
Additional information can be found at Nix search.
Pull the prepared Docker Images for easy deployment:
docker pull versatiles-org/versatiles
You need Rust. Just run:
cargo install versatiles
Ensure you have Rust installed. Then, run:
git clone https://github.com/versatiles-org/versatiles-rs.git
cd versatiles-rs
cargo build --bin versatiles --release
cp ./target/release/versatiles /usr/local/bin/
Running the versatiles
command will list all available commands:
Usage: versatiles [OPTIONS] <COMMAND>
Commands:
convert Convert between different tile containers
probe Show information about a tile container
serve Serve tiles via http
help Show detailed help
Convert between different tile formats:
versatiles convert --tile-format webp satellite_tiles.tar satellite_tiles.versatiles
Serve tiles via HTTP:
versatiles serve satellite_tiles.versatiles
- /versatiles/ - Main library and binary.
- /versatiles_container/ - Reading and writing tile containers like
*.versatiles
,*.mbtiles
,*.pmtiles
, etc. - /versatiles_core/ - Core data types, utilities, and macros.
- /versatiles_derive/ - Handles derive macros.
- /versatiles_geometry/ - Manages geometry data, including OSM data, GeoJSON, vector tiles, etc.
- /versatiles_image/ - Handles image data (PNG, JPEG, WEBP) and image processing.
- /versatiles_pipeline/ - Manages "VersaTiles Pipelines" for fast tile processing.
- /docker/ - Contains a Dockerfile for building Linux binaries.
- /helpers/ - Shell scripts for checking, building, and releasing.
- /testdata/ - Files used during testing.
For more details, guides, and advanced usage, please refer to the official documentation.
VersaTiles is under active development, and the documentation may not always be up to date. We appreciate your understanding and patience. If you encounter any issues or have questions, feel free to open an issue or contribute to our code or documentation.
This project is licensed under the MIT License - see the LICENSE file for details.