Skip to content

WebAssembly wrapper for Biscuit authorization tokens

License

Notifications You must be signed in to change notification settings

ptondereau/biscuit-wasm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Biscuit-Wasm

This library wraps the Rust implementation of Biscuit tokens in WebAssembly, for usage in NodeJS and browsers.

It provides an EcmaScript module, along with TypeScript type definitions.

Usage

Add this dependency to your package.json:

{
    "dependencies": {
        "@biscuit-auth/biscuit-wasm": "0.4.0-alpha1"
    }
}

Node

see the example code in examples/node

Due to some wasm side dependencies, to work in Node, biscuit-wasm requires that this be added to the application:

import { webcrypto } from 'node:crypto'
globalThis.crypto = webcrypto

The node executable must also be started with the --experimental-wasm-modules flag.

In browser

see the example code in examples/frontend

Importing a WebAssembly library with a bundler can take a bit of configuration. We have a working example with Webpack, and would welcome example configuration for other bundlers:

const path = require('path');

module.exports = {
  entry: './index.js',
  output: {
    filename: 'index.js',
    path: path.resolve(__dirname, 'dist'),
  },
  experiments: {
    asyncWebAssembly: true
  }
};

License

Licensed under the Apache 2.0 License.

Copyright 2021 Geoffroy Couprie

About

WebAssembly wrapper for Biscuit authorization tokens

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 98.9%
  • JavaScript 1.1%