DEVELOPER LAB

Plain-language reasoning, recommended defaults, and visible security boundaries.

Guide 01

Get started.

Choose the runtime that handles plaintext. Use the standard artifact path to combine compression policy, authenticated encryption, and artifact shaping.

Choose a surface

Your runtimeInstallUse it for
Browser@voideddev/e2ee-clientStateful client-side encryption, IndexedDB key storage, browser WASM artifacts, and optional Recovery Deck UI.
Node.js@voideddev/enc-serverNative Rust-backed server work, buffers, protected artifacts, hashing, compression, and recovery.
Rustvoided-coreDirect source-of-truth APIs, custom native systems, feature selection, and byte-level control.
Default decision

Use protect/open. Use primitive encryption only when your application owns the outer format. Use shell-only Fuse APIs only when your inner bytes are already prepared.

Browser in sixty seconds

browser.ts
import { VoidedE2EEClient } from "@voideddev/e2ee-client";

const client = new VoidedE2EEClient();
const artifact = await client.protect("Private browser data", {
  preset: "balanced",
});

const info = await client.inspectProtected(artifact);
const restored = await client.open(artifact);

console.log(info.preset, restored);

The stateful client creates or loads its key from IndexedDB. Inspection is structural only; treat every returned field as attacker-controlled until open succeeds.

Node.js in sixty seconds

server.mjs
import { generateKey, inspectArtifact, open, protect } from "@voideddev/enc-server";

const key = generateKey();
const { artifact } = protect(Buffer.from("Private server data"), key, {
  preset: "balanced",
  compressionAlgorithm: "brotli",
  encryptionAlgorithm: "xchacha20-poly1305",
});

console.log(inspectArtifact(artifact).preset);
console.log(open(artifact, key).toString("utf8"));
key.fill(0);

Release status

The source tree and docs are at 1.0.0 release-candidate state. macOS arm64 and Linux x64 native packages, browser WASM, CJS, and ESM paths have passed their release gates. The Windows x64 prebuild has verified provenance and hashes; real Windows execution is the final native gate before publication.

Do not pin an unpublished package

Until the 1.0 tags and packages exist, use the audited source commit rather than assuming the npm or crates.io release is live.

Type a concept or API name.