npm.io
1.6.1 • Published yesterday

@arcjet/analyze-wasm

Licence
Apache-2.0
Version
1.6.1
Deps
0
Size
6.7 MB
Vulns
0
Weekly
96.5K
Stars
673
Arcjet Logo

@arcjet/analyze-wasm

npm badge

Arcjet helps developers protect their apps in just a few lines of code. Implement rate limiting, bot protection, email verification, and defense against common attacks.

This package provides WebAssembly bindings to Arcjet's local analysis engine.

What is this?

This package provides logic in WebAssembly to locally analyze requests.

To load these binary files everywhere until something like Import Bytes is available, we settled on a technique that seems to work well everywhere. This technique gives us compatibility with for example Next.js which right now requires a special experimental asyncWebAssembly webpack configuration,

The file _virtual/arcjet_analyze_js_req.component.core.js contains the WebAssembly inlined as a data: URL. This is about 3 times smaller than using a Uint8Array (see Better Binary Batter: Mixing Base64 and Uint8Array for more info). That URL is then turned into an ArrayBuffer and passed to WebAssembly.compile.

The files here are generated. They are wrapped up into @arcjet/analyze for use in JavaScript, in turn exposed in our core package ([arcjet][github-arcjet-arcjet]) and our SDKs (such as @arcjet/next).

When should I use this?

This is an internal Arcjet package not designed for public use. See our Get started guide for how to use Arcjet in your application.

Install

This package is ESM only. Install with npm in Node.js:

npm install @arcjet/analyze-wasm

Use

Use @arcjet/analyze instead.

License

Apache License, Version 2.0 Arcjet Labs, Inc.

Keywords