10000 GitHub - hazae41/base64.wasm: WebAssembly port of Base64 and Base64URL
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

hazae41/base64.wasm

Repository files navigation

base64.wasm

WebAssembly port of Base64 and Base64URL

npm i @hazae41/base64.wasm

Node Package 📦

Features

  • Reproducible building
  • Pre-bundled and streamed
  • Zero-copy memory slices

Modules

  • base64ct

Algorithms

  • Base64
  • Base64URL

Usage

import { Base64Wasm, base64_encode_padded, base64_decode_padded } from "@hazae41/base64.wasm";

// Wait for WASM to load
await Base64Wasm.initBundled();

const bytes = crypto.getRandomValues(new Uint8Array(256))
using memory = new Memory(bytes)

const text = base64_encode_padded(memory)
using memory2 = base64_decode_padded(text)

console.log(memory2.bytes)

Building

Unreproducible building

You need to install Rust

Then, install wasm-pack

cargo install wasm-pack

Finally, do a clean install and build

npm ci && npm run build

Reproducible building

You can build the exact same bytecode using Docker, just be sure you're on a linux/amd64 host

docker compose up --build

Then check that all the files are the same using npm diff

npm diff

If the output is empty then the bytecode is the same as the one I commited

Automated checks

Each time I release a new version on GitHub, the GitHub's CI clones the GitHub repository, reproduces the build, and throws an error if the NPM release is different. If a version is present on NPM but not on GitHub, do not use it!

About

WebAssembly port of Base64 and Base64URL

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published
0