Kdbush Versions Save

A fast static index for 2D points

v4.0.2

1 year ago

Make sure empty KDBush (with zero items) doesn't throw an error.

v4.0.1

1 year ago

Fix NPM package missing index.js.

v4.0.0

1 year ago

⚠️ A major rewrite of the library to make it more memory-efficient, serializable and similar in API to Flatbush. Breaks the API in the following way:

// old API
const index = new KDBush(points, p => p.x, p => p.y, 64, Uint32Array);

// new API
const index = new KDBush(points.length, 64, Uint32Array);
for (const {x, y} of points) index.add(x, y);
index.finish();

The new API is more verbose, but it allows creating an index without requiring to store coordinates in some intermediate point array, allowing more efficient memory use, and allows transferring (or saving to a binary file) and recreating an index from a single array buffer:

// instantly transfer the index from a worker to the main thread
postMessage(index.data, [index.data]);

// reconstruct the index from a raw array buffer
const index = Flatbush.from(e.data);

⚠️ Also breaking in this version:

  • Dropped CommonJS entry point in favor of a ESM-only one (there's still a UMD bundle provided for browsers though).
  • Dropped transpilation for IE11 (although you can still do it on your end and it will work).

v3.0.0

5 years ago
  • ⚠️ Breaking: Changed the API from kdbush(...) to new KDBush(...).
  • ⚡️ Improved memory footprint (and performance for float types) by storing indices more efficiently. #22
  • 🔧 Converted to idiomatic ES for module consumers. Browser/Node builds are still transpiled to ES5.

v2.0.1

5 years ago

Fix Unpkg and JSDelivr configurations.

v2.0.0

5 years ago

Expose KDBush as a proper ES module:

import kdbush from 'kdbush';

v1.0.1

7 years ago
  • Moved tape from dependencies to devDependencies.