Changelog

What's new in Encra

Every release, in one place. New hooks, server upgrades, crypto improvements, and SDK fixes.

v0.4.1latest
May 2025
@encra/react
New

Added useE2EFile() — encrypt File/Blob up to 50 MB end-to-end. One encrypted copy per recipient device.

New

Added useE2EForm() — encrypt individual form fields before submission. Per-field unique nonces, ideal for HIPAA forms.

New

E2EChatProvider context wrapper — set apiKey and serverUrl once for all hooks in the tree.

v0.3.1
April 2025
@encra/client
New

EncraClient — framework-agnostic client for Node.js, Svelte, Vue, and vanilla JS with full feature parity to @encra/react.

New

encryptFile() / decryptFile() — file encryption on EncraClient, matching useE2EFile() behavior.

New

encryptFields() / decryptFields() — form field encryption on EncraClient, matching useE2EForm() behavior.

v0.4.0
March 2025
@encra/react
New

useE2EChat() — real-time E2E encrypted chat over WebSocket. Handles key generation, registration, and Double Ratchet automatically.

New

Exponential backoff reconnect with jitter. Reconnects automatically after network interruptions.

New

Multi-device send — encrypts once per registered device so all of the recipient's devices receive the message.

New

Ratchet state persisted to IndexedDB. Sessions survive page reloads without rekeying.

v0.2.1
February 2025
encra CLI
New

npx encra init — detects your framework (Next.js, Vite, React Native, Node.js) and writes .env.example plus a starter component.

New

npx encra keygen — generate an X25519 key pair with fingerprint output. Useful for testing and CI.

New

npx encra ping — health check against any Encra server. Verifies API key auth and reports latency.

v0.2.0
January 2025
@encra/core
New

encryptField() / decryptField() — standalone field-level encryption with no server or React dependency. URL-safe base64 output.

New

generateFieldKey() — CSPRNG 32-byte symmetric key for field encryption.

New

generateFingerprint() — Signal-style safety numbers using BLAKE2b-256. Compare out-of-band to verify identity.

Improve

DoubleRatchet.fromExport() — restore ratchet state from a serialised snapshot. Enables session resumption across restarts.

v0.1.0
December 2024
@encra/core@encra/server
New

generateKeyPair(), exportKey(), importKey() — X25519 key pairs serialised as URL-safe base64.

New

deriveSharedSecret() — X25519 ECDH. Both sides independently derive the same 32-byte secret; the server never sees it.

New

encrypt() / decrypt() — XSalsa20-Poly1305 authenticated encryption with random nonce per call.

New

DoubleRatchet — full Double Ratchet Algorithm with forward secrecy, break-in recovery, and out-of-order message support (MAX_SKIP=1000).

New

POST /v1/keys and GET /v1/keys/:userId — public key registration and lookup with multi-device support.

New

WebSocket relay /v1/relay — real-time encrypted message delivery with offline queue (PostgreSQL) and Redis pub/sub for horizontal scaling.

New

GET /health — DB latency, Redis status, and uptime. Returns 503 when the database is unreachable.

New

Production hardening — helmet security headers, express-rate-limit (200 req/min global, 20 req/min on key registration), pino structured logging, graceful shutdown.

Encra AI

Ask me anything · docs, code, troubleshooting

Hi, I'm Encra AI

I can explain concepts, generate starter code, troubleshoot errors, and guide your setup.

May make mistakes · verify critical crypto details