Skip to content

ka7eh/rust-geobuf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rust-geobuf

Crates.io Build Status Coverage Status

Tested with rust 1.60

A port of geobuf encoder and decoder into Rust and WebAssembly

Usage

This crate provides a command line binary, a rust library, and a WebAssembly package. The binary and library are in geobuf and the Rust/WebAssembly code is in geobuf-wasm.

Binary:

geobuf [encode|decode] -i <path-to-input-file> -o <path-to-output-file>

Use geobuf [encode|decode] --help for more info.

Library

use geobuf::{decode, encode};
use serde_json;

fn main() {
    let original_geojson = serde_json::from_str(r#"{"type": "Point", "coordinates": [100.0, 0.0]}"#).unwrap();
    let geobuf = encode::Encoder::encode(&original_geojson, 6, 2).unwrap();
    let geojson = decode::Decoder::decode(&geobuf).unwrap();
    assert_eq!(original_geojson, geojson);
}

WebAssembly

The www folder contains a sample project showing how the wasm code can be used.

To run the example locally, clone the repo and run the following:

  • wasm-pack build -- --no-default-features --features wasm
  • cd www && npm i && npm start

Note: The wasm code is currently slower that the node version and requires some refactoring to improve how data is being passed between the JS and Rust code.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published