osmic
A Rust workspace for working with OpenStreetMap data end-to-end: parsing PBF, building spatial indexes, generating vector tiles, styling, rendering, and serving.
Status: early — 0.1.0, APIs will change.
Installation
Use the umbrella crate for the full SDK:
[]
= "0.1"
Or pull in individual crates as needed:
[]
= "0.1"
= "0.1"
= "0.1"
Workspace layout
| Crate | Description |
|---|---|
osmic |
Umbrella: re-exports, prelude, default plugin groups |
osmic-core |
Shared types, errors, coordinate primitives |
osmic-osm |
OSM data model, PBF parsing, tag system, classification |
osmic-geo |
Projection, simplification, clipping, validation |
osmic-index |
Node location store (mmap) and spatial R-tree index |
osmic-style |
MapLibre-compatible style system |
osmic-tiles |
MVT/MLT encoding, PMTiles archives, tile math |
osmic-render |
Backend abstraction, scene graph, tessellation |
osmic-text |
Text shaping, label collision, glyph atlas |
osmic-app |
Plugin system, App builder, event bus, lifecycle |
osmic-serve |
HTTP tile server with Tower middleware pipeline |
osmic-extract |
Business entity extraction from OSM PBF |
osmic-accel |
GPU-accelerated geometry processing (Apple Silicon Metal) |
osmic-repl |
OSM replication and incremental tile updates |
osmic-cli |
CLI for tile generation, PBF inspection, render-to-image |
osmic-viewer |
Interactive wgpu windowed map viewer |
Quickstart
use *;
See examples/ for full runnable programs:
load-pbf— parse a PBF file and index featuresrender-static— render a static PNG from a PBFtile-server— serve vector tiles from a PMTiles archivecustom-plugin— define and register a plugin
Building
Minimum supported Rust version: 1.94.
License
MIT — see LICENSE.