versatiles

Crates.ioversatiles
lib.rsversatiles
version3.4.0
created_at2023-01-25 17:33:22.639653+00
updated_at2026-01-23 14:46:31.102053+00
descriptionA toolbox for converting, checking and serving map tiles in various formats.
homepagehttps://versatiles.org
repositoryhttps://github.com/versatiles-org/versatiles-rs
max_upload_size
id767659
size356,188
Michael Kreil (MichaelKreil)

documentation

README

versatiles

A Rust library and CLI for reading, writing, and converting map tiles.

Crates.io Documentation

Overview

VersaTiles provides both a command-line interface and a Rust library for working with map tile containers in various formats including MBTiles, PMTiles, VersaTiles, TAR, and directory structures.

As a CLI Tool

For CLI usage, installation instructions, command documentation, and production deployment guides, see the main VersaTiles README.

The CLI provides commands for:

  • convert: Convert between tile formats
  • probe: Inspect tile containers
  • serve: Run an HTTP tile server
  • dev: Development server with hot reload

As a Library

The versatiles crate can be used as a library to integrate tile processing into your Rust applications.

Installation

cargo add versatiles

Or see crates.io/crates/versatiles for version info and docs.rs/versatiles for API documentation.

Example

use versatiles::{
    container::*,
    core::*,
};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let runtime = TilesRuntime::default();
    let reader = runtime.get_reader_from_str("input.pmtiles").await?;

    // Define the output filename
    let output_path = std::env::temp_dir().join("output.versatiles");

    // Write the tiles to the output file
    runtime.write_to_path(reader, &output_path).await?;

    println!("Tiles converted successfully!");
    Ok(())
}

Features

  • cli (default): Command-line interface
  • server (default): HTTP tile server
  • gdal (optional): GDAL raster support for reading GeoTIFF and other raster formats

Component Crates

VersaTiles is built from several focused crates that can be used independently:

Documentation

Supported Formats

  • .versatiles - Native VersaTiles container format
  • .mbtiles - MBTiles (SQLite-based)
  • .pmtiles - PMTiles (cloud-optimized)
  • .tar - TAR archives
  • Tile directories

License

MIT License - see LICENSE for details.

Commit count: 2978

cargo fmt