Topobuf is a compact binary encoding for topological data.
Topobuf provides lossless[^1] compression of TopoJSON data into protocol buffers. Advantages over using JSON-based formats alone:
JSON.stringify
/ JSON.parse
normal | gzipped | |
---|---|---|
pa-census-blocks.json | 280 MB | 44 MB |
pa-census-blocks.pbf | 114 MB | 35 MB |
us-zips.json | 15.02 MB | 3.19 MB |
us-zips.pbf | 4.85 MB | 2.72 MB |
idaho.json | 1.9 MB | 612 KB |
idaho.pbf | 567 KB | 479 KB |
npm install topobuf
var buffer = topobuf.encode(topojson, new Pbf());
Given a TopoJSON object and a Pbf object to write to,
returns a Topobuf as a Buffer
object in Node or UInt8Array
object in browsers.
var topojson = topobuf.decode(new Pbf(data));
Given a Pbf object with topobuf data, return a TopoJSON object.
This library is based on geobuf
by Mapbox, which provides similar functionality for GeoJSON
[^1]: When using quantized TopoJSON - nearly lossless otherwise