stt-core 0.1.0

Core library for spatiotemporal tile format
Documentation

stt-core

Core Rust library for the SpatioTemporal Tiles (STT) format. The canonical container is the packed format: a per-dataset manifest.json (tiny, mutable) plus content-addressed, immutable pack objects (packs/<blake3>.sttp) and one directory object (index/<blake3>.sttd) — small immutable objects are what make a dataset edge-cacheable on a plain CDN. This crate owns the format end to end: PackWriter / PackedReader and the Manifest, Arrow-IPC tile payloads with GeoArrow geometry (arrow_tile), the run-length + paged tile directory, Hilbert/temporal blob ordering (curve), zstd/gzip compression, and timestamp normalization.

Internal implementation crate of spatiotemporal-tiles — the same role bevy_ecs plays under bevy. Prefer cargo add spatiotemporal-tiles (this crate is its core module); depend on stt-core directly only if you need exactly the format layer. Versions track the facade in lockstep.

Example

stt-core is a library (the CLIs live in the sibling crates), but it ships operational one-offs as cargo examples:

# Losslessly re-pack a dataset, backfilling the tight per-tile temporal
# bound (payload bytes untouched):
cargo run --release -p stt-core --example pack-cover -- \
  my-dataset/manifest.json my-dataset-v2 64 auto

# Size/layout stats for a packed dataset:
cargo run --release -p stt-core --example packed-stats -- my-dataset/manifest.json

See examples/README.md for the full list (repack, packed-stats, pack-transcode, simulate_layout, …).

Relation to the other crates

Every other crate builds on this one: stt-build writes packed datasets through PackWriter, stt-serve encodes single tiles with the same encoder, stt-validate checks archives with verify_packed_objects + the tile decoder, and stt-optimize reads archives for analysis. The TypeScript reader (@poopdeck.gl/core) is the browser-side mirror.

Docs

License: MIT.