npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

wasm-marching-squares

v1.0.2

Published

A WebAssembly library for generating isolines and isobands in the browser via the marching squares algorithm.

Downloads

7

Readme

wasm-marching-squares

This library is a direct port of rveciana's raster-marching-squares to WebAssembly by way of C. The algorithm is implemented in C and currently generates GeoJSON isolines given raw data from a GeoTIFF file. Isobands will be supported in the future.

Usage

WIP

For now, you can check out the test folder and see how the map.js file is using the WASM module. In the future, the external API will be much easier to use.

Caveats

  • Need to add a cleaner external API for ease of use.
  • Isoband generation is not implemented yet

Build

To properly build, you will need to download the Emscripten SDK.

  1. Compile the Jansson C JSON library using emcc

    • Remove CMakeCache.txt from `include/jansson-2.13.1 if it exists
    • cd include/jansson-2.13.1 && emcmake cmake -DCMAKE_INSTALL_PREFIX:PATH=./emcc-lib .
    • emmake make VERBOSE=1
    • emmake make check
    • emmake make install
  2. Generate the WASM code and JavaScript 'glue' code

./build

Test

C Library Unit Testing

  1. Compile the Jansson C JSON library using cmake

    • Remove CMakeCache.txt from `include/jansson-2.13.1 if it exists
    • cd include/jansson-2.13.1 && cmake .
    • emmake make VERBOSE=1
    • emmake make check
    • emmake make install
  2. Compile and run the unit tests

cd test && ./test

Functional Testing

  • Start a webserver and serve the test directory
  • Navigate to the index.html and click Test GeoJSON
  • You can test the vardah.tif file or the sfctmp.tif file by altering the test/map.js file.

TODO

  • Implement Isoband generation
  • Speed up lookups using a Quadtree