This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
mobilecritical PriorityID: tauri-mobile-zero-copy-ipc-guardrail

Tauri 2.0 Mobile SharedArrayBuffer IPC Zero-Copy Guardrail

Enforces 64-bit memory alignment and zero-copy binary IPC response handling across the Tauri 2.0 Rust-WebKit/WebView bridge. Eliminates severe garbage collection thrashing, thread starvation, and IPC payload fragmentation caused by serializing high-frequency hardware sensor streams into JSON or Base64 strings.

Prohibited Anti-Pattern: Serializing High-Frequency Sensor Stream Buffers via JSON IPC Bridge Causing GC Thrashing and UI Thread Starvation

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Tauri 2.0 Mobile SharedArrayBuffer IPC Zero-Copy Guardrail - Enforces 64-bit memory alignment and zero-copy binary IPC response handling across the Tauri 2.0 Rust-WebKit/WebView bridge. Eliminates severe garbage collection thrashing, thread starvation, and IPC payload fragmentation caused by serializing high-frequency hardware sensor streams into JSON or Base64 strings.
globs: src/**/*.{ts,tsx}, src-tauri/src/**/*.rs
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/tauri-mobile-zero-copy-ipc-guardrail"
---

# Tauri 2.0 Mobile SharedArrayBuffer IPC Zero-Copy Guardrail

> **Severity**: CRITICAL | **Category**: mobile
> **Anti-Pattern Warning**: Serializing High-Frequency Sensor Stream Buffers via JSON IPC Bridge Causing GC Thrashing and UI Thread Starvation

## System Constraints
You are a Principal Software Architect enforcing the Tauri 2.0 Mobile Zero-Copy IPC Guardrail. Mandate 64-bit aligned binary buffer handoffs for all high-frequency sensor streams (>=60Hz) between Rust and WebKit/Android WebView. Never allow JSON serialization, base64 encoding, or intermediate Array allocations for raw numeric vectors, camera feeds, IMU streams, or spatial sensor telemetry.

## Strict Guidelines
- Engineers MUST ALWAYS use raw binary IPC responses (`tauri::ipc::Response::new(Vec<u8>)` in Rust and typed binary transfers in the frontend) for telemetry exceeding 30Hz.
- Engineers MUST NOT serialize numeric vectors or telemetry buffers into JSON strings, stringified arrays, or Base64 payloads over the Tauri IPC boundary.
- Code MUST verify 64-bit alignment (`byteOffset % 8 === 0`) before instantiating `Float64Array` or `BigInt64Array` views over received `ArrayBuffer` instances to prevent WebKit SIGBUS panics on ARM64 architectures.
- Frontend consumers MUST reuse pre-allocated TypedArray transfer targets or mutating views rather than constructing transient `ArrayBuffer` allocations on each incoming frame.
- Rust bridge handlers MUST emit contiguous byte buffers using direct memory references or zero-copy IPC channels (`tauri::ipc::Channel`) instead of structured deserialization payloads.
- Components NEVER bridge raw sensor streams inside React/Svelte state re-render cycles; sensor state MUST be stored in memory-mapped views and decoupled from UI render ticks.

## Bad vs Good Implementations
### High-Frequency IMU Sensor Bridge Handoff

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Serializing numeric arrays across the mobile bridge via standard JSON forces heavy string encoding/parsing on the WebKit main thread. At 100-500Hz sensor frequencies, this generates thousands of transient JavaScript heap objects, triggering aggressive V8/JSC garbage collection pauses and dropped UI frames on mobile ARM devices.
```typescript
import { invoke } from '@tauri-apps/api/core';

interface SensorReading {
  timestamp: number;
  accel: [number, number, number];
  gyro: [number, number, number];
}

// ANTI-PATTERN: Pulling high-frequency telemetry via JSON IPC
export async function pollSensorBatch(): Promise<void> {
  // Triggers serde_json serialization in Rust and JSON.parse in WebKit thread
  const readings = await invoke<SensorReading[]>('get_imu_telemetry');
  readings.forEach((reading) => {
    // Allocates multiple array instances per tick causing GC pressure
    const magnitude = Math.hypot(...reading.accel);
    window.dispatchEvent(new CustomEvent('imu-tick', { detail: magnitude }));
  });
}
```

#### Production Standard (Correct)
> **Standard**: Returns a raw binary `ArrayBuffer` over Tauri 2.0's binary IPC transfer, bypassing JSON stringification entirely. Validates 64-bit alignment to safely construct a `Float64Array` view without data copying or memory reallocation, allowing native ARM64 SIMD hardware operations without garbage collection overhead.
```typescript
import { invoke } from '@tauri-apps/api/core';

const BYTES_PER_SAMPLE = 32; // 8-byte timestamp + 3x 8-byte float vector
const RING_BUFFER_SIZE = 1024 * BYTES_PER_SAMPLE;
const sharedBuffer = new ArrayBuffer(RING_BUFFER_SIZE);

export async function fetchSensorBatchZeroCopy(): Promise<Float64Array> {
  // Mandate raw binary handoff without JSON overhead
  const rawResponse = await invoke<ArrayBuffer>('get_imu_telemetry_raw');
  
  // Enforce 64-bit alignment check for ARM64 stability
  if (rawResponse.byteLength % 8 !== 0) {
    throw new RangeError('Unaligned binary IPC payload: byteLength must be a multiple of 8');
  }

  // Zero-copy typed view: directly points to IPC binary segment
  const view = new Float64Array(
    rawResponse,
    0,
    rawResponse.byteLength / Float64Array.BYTES_PER_ELEMENT
  );

  return view;
}
```

Recommended Agent Skills (askills.dev)

Ready-to-use executable skill functions tailored to this stack.

Architectural Specification & Invariant Rationale

Architectural Invariant Design: Tauri 2.0 Mobile SharedArrayBuffer IPC Zero-Copy Guardrail

Tauri 2.0 Mobile SharedArrayBuffer IPC Zero-Copy Guardrail defines an industrial-grade behavioral standard for mobile engineering. Enforces 64-bit memory alignment and zero-copy binary IPC response handling across the Tauri 2.0 Rust-WebKit/WebView bridge. Eliminates severe garbage collection thrashing, thread starvation, and IPC payload fragmentation caused by serializing high-frequency hardware sensor streams into JSON or Base64 strings. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Serializing High-Frequency Sensor Stream Buffers via JSON IPC Bridge Causing GC Thrashing and UI Thread Starvation Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftSerializing High-Frequency Sensor Stream Buffers via JSON IPC Bridge Causing GC Thrashing and UI Thread StarvationCritical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST ALWAYS use raw binary IPC responses (`tauri

Engineers MUST ALWAYS use raw binary IPC responses (`tauri::ipc::Response::new(Vec<u8>)` in Rust and typed binary transfers in the frontend) for telemetry exceeding 30Hz.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NOT serialize numeric vectors or telemetry buffers into JSON strings, stringified arrays, or Base64 payloads over the Tauri IPC boundary.

Engineers MUST NOT serialize numeric vectors or telemetry buffers into JSON strings, stringified arrays, or Base64 payloads over the Tauri IPC boundary.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

Code MUST verify 64-bit alignment (`byteOffset % 8 === 0`) before instantiating `Float64Array` or `BigInt64Array` views over received `ArrayBuffer` instances to prevent WebKit SIGBUS panics on ARM64 architectures.

Code MUST verify 64-bit alignment (`byteOffset % 8 === 0`) before instantiating `Float64Array` or `BigInt64Array` views over received `ArrayBuffer` instances to prevent WebKit SIGBUS panics on ARM64 architectures.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Frontend consumers MUST reuse pre-allocated TypedArray transfer targets or mutating views rather than constructing transient `ArrayBuffer` allocations on each incoming frame.

Frontend consumers MUST reuse pre-allocated TypedArray transfer targets or mutating views rather than constructing transient `ArrayBuffer` allocations on each incoming frame.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

Rust bridge handlers MUST emit contiguous byte buffers using direct memory references or zero-copy IPC channels (`tauri

Rust bridge handlers MUST emit contiguous byte buffers using direct memory references or zero-copy IPC channels (`tauri::ipc::Channel`) instead of structured deserialization payloads.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
6

Components NEVER bridge raw sensor streams inside React/Svelte state re-render cycles

Components NEVER bridge raw sensor streams inside React/Svelte state re-render cycles; sensor state MUST be stored in memory-mapped views and decoupled from UI render ticks.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is Tauri 2.0 Mobile SharedArrayBuffer IPC Zero-Copy Guardrail critical for AI coding assistants?

Enforces 64-bit memory alignment and zero-copy binary IPC response handling across the Tauri 2.0 Rust-WebKit/WebView bridge. Eliminates severe garbage collection thrashing, thread starvation, and IPC payload fragmentation caused by serializing high-frequency hardware sensor streams into JSON or Base64 strings. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Serializing High-Frequency Sensor Stream Buffers via JSON IPC Bridge Causing GC Thrashing and UI Thread Starvation) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

Related MOBILE Rules

View all rules →
1 Rule in Stack

Tauri