A Rust implementation of the blurhash algorithm.
It is compiled to WebAssembly (WASM), and available on npm as blurhash-wasm
.
You will need a package manager, either npm (comes with node) or yarn.
You will also need a bundler, webpack or Rollup, configured for your project.
Then, in a terminal:
npm install blurhash-wasm
# Or, yarn add blurhash-wasm
The demo app source has a complete example of using blurhash-wasm
.
import * as blurhash from "blurhash-wasm";
// Returned as Uint8Array | undefined
// You can use this to construct canvas-compatible resources
const pixels = blurhash.decode("LKO2?U%2Tw=w]~RBVZRi};RPxuwH", 40, 30);
Not yet implemented :)
You will need Rust and Cargo.
Add the version you want to Cargo.toml
:
[dependencies]
blurhash-wasm = "0.1.0"
use blurhash_wasm;
// Result<Vec<u8>, blurhash::Error>
let res = blurhash::decode("LKO2?U%2Tw=w]~RBVZRi};RPxuwH", 40, 30);
Not yet implemented :)
Based on the rust wasm-pack template
This template is designed for compiling Rust libraries into WebAssembly and publishing the resulting package to NPM.
Be sure to check out other wasm-pack
tutorials online for other
templates and usages of wasm-pack
.
wasm-pack build
wasm-pack test --headless --firefox
wasm-pack publish
-
wasm-bindgen
for communicating between WebAssembly and JavaScript. -
console_error_panic_hook
for logging panic messages to the developer console. -
wee_alloc
, an allocator optimized for small code size.