# @arcjet/analyze-wasm

> WebAssembly bindings to Arcjet's local analysis engine

Latest version **1.14.1** (published 2026-10-07) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @arcjet/analyze-wasm
pnpm add @arcjet/analyze-wasm
yarn add @arcjet/analyze-wasm
bun add @arcjet/analyze-wasm
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.14.1 |
| Published | 2026-10-07 |
| First published | 2025-01-15 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=22.21.0 <23 \|\| >=24.5.0 |
| Dependencies | 0 |
| Unpacked size | 5 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 689 |
| Author | Arcjet |
| Maintainers | quinn-arcjet, davidmytton |
| Keywords | analyze, arcjet, attack, limit, protect, verify, wasm |

## Links

- npm: https://www.npmjs.com/package/@arcjet/analyze-wasm
- Repository: https://github.com/arcjet/arcjet-js
- Homepage: https://arcjet.com
- Issues: https://github.com/arcjet/arcjet-js/issues
- npm.io page: https://npm.io/package/@arcjet/analyze-wasm

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 1.14.1 (latest) — 2026-10-07
- 1.10.0-rc.1 (rc) — 2026-08-07
- 1.14.0 — 2026-10-01
- 1.13.0 — 2026-09-16
- 1.12.0 — 2026-09-08
- 1.11.0 — 2026-08-26
- 1.10.0 — 2026-08-11
- 1.10.0-rc.0 — 2026-08-04
- 1.9.1 — 2026-07-15
- 1.9.0 — 2026-07-15
- 1.8.0 — 2026-07-07
- 1.8.0-rc.0 — 2026-07-07
- 1.7.0 — 2026-07-06
- 1.7.0-rc.1 — 2026-07-06
- 1.7.0-rc.0 — 2026-07-03
- … 28 more at https://npm.io/package/@arcjet/analyze-wasm/versions

## README

<a href="https://arcjet.com" target="_arcjet-home">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://arcjet.com/logo/arcjet-dark-lockup-voyage-horizontal.svg">
    <img src="https://arcjet.com/logo/arcjet-light-lockup-voyage-horizontal.svg" alt="Arcjet Logo" height="128" width="auto">
  </picture>
</a>

# `@arcjet/analyze-wasm`

<p>
  <a href="https://www.npmjs.com/package/@arcjet/analyze-wasm">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/v/%40arcjet%2Fanalyze-wasm?style=flat-square&label=%E2%9C%A6Aj&labelColor=000000&color=5C5866">
      <img alt="npm badge" src="https://img.shields.io/npm/v/%40arcjet%2Fanalyze-wasm?style=flat-square&label=%E2%9C%A6Aj&labelColor=ECE6F0&color=ECE6F0">
    </picture>
  </a>
</p>

[Arcjet][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][arcjet] local analysis engine.

- [npm package (`@arcjet/analyze-wasm`)](https://www.npmjs.com/package/@arcjet/analyze-wasm)
- [GitHub source code (`analyze-wasm/` in `arcjet/arcjet-js`)](https://github.com/arcjet/arcjet-js/tree/main/analyze-wasm)

## What is this?

This package provides logic in WebAssembly to locally analyze requests.

To load these binary files everywhere until something like
[_Import Bytes_][tc39-proposal-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][mdn-data-url].
This is about 3 times smaller than using a `Uint8Array` (see
[_Better Binary Batter: Mixing Base64 and Uint8Array_][wasm-base64-blog] 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`][github-arcjet-analyze] for use in
JavaScript,
in turn exposed in our core package
([`arcjet`][github-arcjet-arcjet])
and our [SDKs][github-arcjet-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][arcjet-get-started] for how to use Arcjet in your
application.

## Install

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

```sh
npm install @arcjet/analyze-wasm
```

## Use

Use [`@arcjet/analyze`][file-analyze] instead.

## License

[Apache License, Version 2.0][apache-license] © [Arcjet Labs, Inc.][arcjet]

[arcjet]: https://arcjet.com
[arcjet-get-started]: https://docs.arcjet.com/get-started
[file-analyze]: ../analyze/
[mdn-data-url]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs
[wasm-base64-blog]: https://blobfolio.com/2019/better-binary-batter-mixing-base64-and-uint8array/
[apache-license]: http://www.apache.org/licenses/LICENSE-2.0
[github-arcjet-analyze]: https://github.com/arcjet/arcjet-js/tree/main/analyze
[github-arcjet-sdks]: https://github.com/arcjet/arcjet-js#sdks
[tc39-proposal-import-bytes]: https://github.com/tc39/proposal-import-bytes

---
_Source: https://npm.io/package/@arcjet/analyze-wasm · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
