Skip to content

Public Release (1.2.2)

Pre-release
Pre-release

Choose a tag to compare

@DevsDaddy DevsDaddy released this 05 Sep 05:30
· 1 commit to main since this release
eb73139

🚀 The main thing: we became even faster

In this version, I've moved the heaviest calculations to WebAssembly with SIMD optimizations. QuarkDash is now the fastest tool in its class (post-quantum encryption + lightweight stream ciphers).

For users: encryption and decryption are 1.5 - 2 times faster, and keystream is 6 times faster. Without API changes.


⚡ What exactly is accelerated?

1. Gimli and ChaCha ciphers are now in WASM

Previously, encryption blocks were processed in JavaScript. I've now moved the hot loops to WebAssembly with SIMD support.

Result:

  • Encrypting 1 MB of data: ~17-20 ms (previously ~30-35 ms).
  • For larger data sizes (from 1 KB), the speedup reaches 2-6x.
  • Small packets (< 1 KB) are still processed in JavaScript to avoid wasting time on WASM calls.

2. Post-quantum protocol (Ring-LWE): NTT 3x faster

The most complex operation - the fast Fourier transform (NTT) is now performed using WASM with SIMD.

  • One NTT (for a polynomial of length 256) has been accelerated from 0.15 ms to 0.045 ms - a 3.3× speedup.
  • Internal operations have also been optimized: unnecessary memory allocations have been removed, and memory view caching has been implemented.

3. Internal JavaScript Optimizations

Keystream generation has been rewritten to eliminate the creation of unnecessary Map objects and iterators - it now runs 20–30% faster, even without WASM.


🧩 Compatibility and backup

  • If WebAssembly is unavailable (for example, in an older browser or Node < 18), the library will automatically switch to pure JavaScript - without errors or loss of functionality.
  • The minimum Node.js version is now 18 because we leverage modern features (bulk memory, SIMD) for maximum performance.
  • On platforms where WASM with SIMD is not supported (iOS Safari < 15, older versions of Chrome), WASM compilation will fail with a CompileError, but we catch this and switch to the JS implementation - the user won't notice.

📦 How to update

Just install via npm:

npm install quarkdash@latest

What's next?

A major update is coming soon, making QuarkDash a fully-fledged protocol even for enterprise projects. Stay tuned for news and the roadmap:
https://github.com/users/DevsDaddy/projects/4