Crates.io | geobuf |
lib.rs | geobuf |
version | 0.1.4 |
source | src |
created_at | 2020-06-10 03:55:59.928644 |
updated_at | 2022-07-21 12:49:05.840579 |
description | Geobuf encoder and decoder |
homepage | |
repository | https://github.com/ka7eh/rust-geobuf |
max_upload_size | |
id | 252219 |
size | 101,116 |
Tested with rust 1.60
A port of geobuf encoder and decoder into Rust and WebAssembly
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
.
geobuf [encode|decode] -i <path-to-input-file> -o <path-to-output-file>
Use geobuf [encode|decode] --help
for more info.
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);
}
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.