All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
When editing this file, please respect a line length of 100.
- Post-quantum cryptography support.
- BLAKE3-based KDF for nonce derivation, improving cryptographic safety.
- Reduced MAX_CHUNK_SIZE to 4190208 bytes to provide compression headroom.
- Child level is now threaded through DecryptionStream and used in KDF.
- Improved Python binding docs and updated TypeScript type definitions.
- Legacy v0 DataMap format support has been removed.
- Removed several storage-coupled APIs from the public interface:
encrypt_from_file,decrypt_from_storage,streaming_encrypt_from_file,streaming_encrypt_datamaps_from_file, andstreaming_decrypt_from_storage.
- Improved error handling: eliminated swallowed errors and dead code.
- Fixed boundary underflow test assertions to use local max_chunk_size.
- Avoid holding individual file handler for each chunk. This resolved an issue we found with long
downloads when multiple
antinstances were running at the same time.
- Max chunk size is now set to 4MB by default. This is the default currently being used in production and we are setting it here to avoid mistakes when building binaries that depend on self encryption.
- random streaming decryption handling different MAX_CHUNK_SIZE scheme.
- Easy-to-use streaming functions: new
stream_encryptandstreaming_decryptfunctions provide simplified APIs for streaming encryption/decryption without requiring manual stream management. - In-memory streaming encryption: streaming encryption now operates entirely in memory, eliminating disk I/O dependencies for better performance.
- Random access streaming decryption: added random access functionality for streaming decryption, enabling flexible data retrieval patterns.
- Streaming API improvements: greatly enhanced streaming functionality with better memory management and performance optimizations.
- Code organization: consolidated streaming functionality and removed legacy streaming code for better maintainability.
- Legacy streaming implementation: removed outdated stream_old code as part of codebase cleanup.
- Streaming decryption: resolved issue where
streaming_decrypt_from_storageresulted in repeated content due to file append behavior. - Streaming decryption: corrected streaming behavior to properly process chunks in ordered batches for memory-efficient decryption.
- Parallel chunk retrieval function signature:
streaming_decrypt_from_storagenow expects chunk retrieval functions to accept and return index-hash tuples(usize, XorName)instead of just hashes, enabling proper ordering during batch processing [BREAKING].
- Node.js bindings: complete Node.js binding implementation with TypeScript definitions.
- Streaming encrypt for Node.js: added streaming encryption functionality for Node.js bindings.
- XorName utilities for Node.js: added
XorName::to_hexmethod and native type support. - Chunk verification for Node.js: added
verify_chunkfunction for Node.js bindings. - Constants export for Node.js: export MIN_CHUNK_SIZE, MAX_CHUNK_SIZE, and other constants.
- DataMap backward compatibility: added support for deserializing old DataMap format while maintaining new struct format with comprehensive fallback support.
- Enhanced testing: added extensive tests for DataMap backward compatibility scenarios.
- Semi-automated release workflow: new human-reviewed release process with manual triggering.
- DataMap binary format: now includes version byte for future compatibility [BREAKING].
- MAX_CHUNK_SIZE constant: changed from lazy_static to proper const [BREAKING].
- Node.js API improvements: more native argument handling and better type integration.
- Python bindings: return
Bytesinstead ofListfor better performance. - Dependencies: removed unused dependencies (num_cpus, tiny_keccak, lazy_static).
- CI/CD improvements: renamed pr.yml to merge.yml, removed commit linting and cargo fmt constraints, added comprehensive Node.js workflows.
- Code quality: fixed 13 clippy format string warnings, applied rustfmt formatting.
- Python bindings: resolved clippy format string warnings in Python bindings.
- Documentation: removed Python examples using nonexistent functions.
- Build system: properly defined pyo3 as optional dependency.
- CI workflows: fixed Node.js CI workflows and NPM package publishing.
- Automated workflows: removed automated version bumping and changelog generation workflows.
- Dependencies: removed unused num_cpus, tiny_keccak, and lazy_static dependencies.
- Legacy code: cleaned up old automated changelog entries.
- PR constraints: removed PR size limit check and commit linting requirements.