Skip to content

Epistates/osmic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

[dependencies]
osmic = "0.1"

Or pull in individual crates as needed:

[dependencies]
osmic-core = "0.1"
osmic-osm = "0.1"
osmic-tiles = "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 osmic::prelude::*;

fn main() -> OsmicResult<()> {
    let app = App::new()
        .add_plugins(osmic::HeadlessPlugins)
        .run();
    Ok(())
}

See examples/ for full runnable programs:

  • load-pbf — parse a PBF file and index features
  • render-static — render a static PNG from a PBF
  • tile-server — serve vector tiles from a PMTiles archive
  • custom-plugin — define and register a plugin

Building

cargo build --workspace
cargo test --workspace
cargo clippy --workspace --all-targets

Minimum supported Rust version: 1.94.

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors