Skip to content

Releases: DeFUCC/hashfs

💿 v0.2.5 Solid composition: useHashFS for the vault and useFile for a single file.

30 Aug 07:27
61569b4
Compare
Choose a tag to compare

Clean and readable code, optimized for human understanding. Distilled and stripped of all unnecessary comments. First serious production ready release.

📻 v0.2.4 BLAKE3 hashes, SCRYPT KDF

28 Aug 11:54
5c62912
Compare
Choose a tag to compare

Major cryptography improvements.

💚 v0.2.3 MIT License added

27 Aug 08:44
00b823e
Compare
Choose a tag to compare

I've considered different scenarios and factors and decided that I don't want to manage all that confusion that people have created to prevent sharing, gifting and just bringing love and care to others without them having to pay for every benefit they got from others. I believe in open knowledge society formed by people as we want it ourselves. And with right tools we can start rebuilding the collapsing world.

🥥 v0.2.2 ZIP import/export and undo/redo + published on JS.ORG

26 Aug 17:12
6a1818e
Compare
Choose a tag to compare

Now we have a beautiful address: https://hashfs.js.org/

And we can export all files in the vault (storing mime types in a .hashfs_meta.json file) and then import them back into another account/instance/browser/device. Also now we're utilizing our hash chains to drive very stable and reliable undo/redo functionality. All necessary CRUD operations are achieved!

🚪 v0.2.1 Workers got terminated on close

26 Aug 10:36
820e94f
Compare
Choose a tag to compare

We prevent reusing the abandoned workers for other users - when you logout both workers get terminated and we generate a clean state.

🤖 v0.2.0 Web Worker Architecture

26 Aug 08:53
93758cd
Compare
Choose a tag to compare

HashFS v0.2.0 - Web Worker Architecture Release

🚀 Major Performance & Architecture Improvements

Web Worker Architecture

  • Complete isolation: All cryptographic operations, IndexedDB storage, and chain management now run in dedicated web workers
  • Non-blocking UI: Main thread stays responsive during heavy operations like bulk imports/exports
  • Structured messaging: Clean, type-safe communication between main thread and workers
  • Dedicated workers: Separate workers for core operations and bulk processing with progress tracking

Optimized Memory Management

  • Transferable ArrayBuffers: Zero-copy file transfers using modern Transferable Objects API
  • Future-proof: Simplified architecture using only ArrayBuffer transfers - no complex SharedArrayBuffer dependencies
  • Universal compatibility: Works consistently across all modern browsers without special headers
  • Efficient caching: Smart buffer management prevents memory duplication

Enhanced User Experience

  • Real-time progress: Live progress tracking for bulk import/export operations with file-by-file status
  • Responsive interface: UI remains interactive during heavy crypto operations
  • Better error handling: Granular error reporting for individual files in batch operations
  • Auto-save improvements: Debounced saves with dirty state tracking in worker context

Simplified Deployment

  • No special headers: Removed SharedArrayBuffer dependency eliminates COOP/COEP header requirements
  • Broader compatibility: Works in more hosting environments including GitHub Pages, Netlify, etc.
  • Standard web workers: Uses widely-supported Web Worker APIs for maximum compatibility

🔧 Technical Improvements

Security Enhancements

  • Isolated crypto operations: All key derivation and encryption happens in secure worker context
  • Memory isolation: Sensitive operations completely separated from main thread
  • Integrity verification: Ed25519 signature verification for all file operations

Code Quality

  • DRY architecture: Eliminated code duplication between main thread and worker contexts
  • ESM modules: Clean ES module structure throughout worker and main code
  • Type-safe messaging: Structured request/response patterns with proper error propagation
  • Maintainable composables: Vue 3 composables provide clean reactive API

Performance Optimizations

  • Efficient compression: Built-in deflate/inflate with worker-based processing
  • Smart cleanup: Automatic orphaned file detection and removal in background
  • Optimized builds: Proper code splitting separates workers and core logic

🛠 Developer Experience

Clean API

// Simple, reactive API unchanged
const { auth, files, useFile, importAll } = useHashFS("passphrase");
const file = useFile("document.txt");
file.text.value = "Hello World"; // Auto-saves in worker

// Progress tracking for bulk operations
await importAll(fileList, (progress) => {
	console.log(`${progress.completed}/${progress.total}: ${progress.current}`);
});

Modern Build Tools

  • Vite integration: Optimized Vite configuration for worker builds
  • Hot reload: Workers reload properly in development
  • Production ready: Optimized worker chunking and loading

📊 Performance Impact

  • Main thread blocking: Eliminated during file operations
  • Memory efficiency: Reduced memory copying through transferable objects
  • Startup time: Faster initialization through worker pre-loading
  • Bulk operations: 2-3x faster import/export with parallel processing

🔄 Migration Guide

No breaking changes - existing HashFS usage patterns remain identical. The worker architecture is completely transparent to existing code.

🎯 Use Cases Enhanced

  • Large file handling: Better performance for files >10MB
  • Bulk operations: Faster

🔄 v0.1.0: useFile composable interface

25 Aug 14:17
a9214d9
Compare
Choose a tag to compare

v.0.0.3 Hash chains

24 Aug 17:37
66ecc6f
Compare
Choose a tag to compare

Zero-leakage 3 store solution to have verifiable history, de-duplication and full privacy.