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.1, APIs will change.
See CHANGELOG.md for release notes.
Installation
Use the umbrella crate for the full SDK:
[]
= "0.1.1"
Or pull in individual crates as needed:
[]
= "0.1.1"
= "0.1.1"
= "0.1.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 print feature/index statisticsrender-static— render a static PNG from a PMTiles archivetile-server— serve vector tiles from a PMTiles archivecustom-plugin— define and register a plugin
Example commands:
Building
Minimum supported Rust version: 1.94.
osmic-osm disables native PBF parsing by default at the workspace dependency
level so crates that only need the OSM data model do not pull in osmpbf and
rayon. Binaries and examples that read .osm.pbf files enable the
osmic-osm/native feature explicitly.
License
MIT — see LICENSE.