oxigdal-pmtiles 0.1.3

Pure Rust PMTiles v3 reader for OxiGDAL - single-file tile archive with varint directory
Documentation
  • Coverage
  • 100%
    95 out of 95 items documented1 out of 41 items with examples
  • Size
  • Source code size: 107.79 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 4.36 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 20s Average build duration of successful builds.
  • all releases: 23s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • cool-japan/oxigdal
    48 3 2
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • cool-japan

oxigdal-pmtiles

Pure Rust PMTiles v3 reader and writer for the OxiGDAL ecosystem. No C/Fortran dependencies.

Features

  • 127-byte fixed header parser (PmTilesHeader)
  • Varint-encoded directory entry decoder (DirectoryEntry, decode_directory)
  • Hilbert curve tile ID computation (zxy_to_tile_id, tile_id_to_zxy)
  • High-level reader (PmTilesReader) and builder (PmTilesBuilder)
  • Compression type and tile format detection

Usage

use oxigdal_pmtiles::{PmTilesReader, zxy_to_tile_id, tile_id_to_zxy};

// Convert z/x/y to a Hilbert curve tile ID
let tile_id = zxy_to_tile_id(5, 10, 15);
let (z, x, y) = tile_id_to_zxy(tile_id);
assert_eq!((z, x, y), (5, 10, 15));

// Read a PMTiles archive
let data: &[u8] = &[/* pmtiles file bytes */];
let reader = PmTilesReader::new(data).expect("valid PMTiles");
let header = reader.header();
println!("Tile type: {:?}, {} entries", header.tile_type, reader.num_entries());

Status

  • 147 tests passing, 0 failures

License

See the top-level OxiGDAL repository for license details.