Releases: HenryOwenz/polycrypt-rs
v0.4.5-beta.1
Release v0.4.5-beta.1
NOTES:
This beta release focuses on enhancing cross-platform support and introducing cross-compilation capabilities, particularly for Linux environments. It builds upon the previous FFI improvements and adds robust platform-specific build configurations.
FEATURES:
- Added cross-compilation support for Linux using musl
- Introduced platform-specific build targets
- Added combined build target for multi-platform releases
ENHANCEMENTS:
- Improved Makefile with platform-specific configurations
- Added musl target support for better Linux compatibility
- Enhanced build system to support cross-compilation
- Improved cleanup process for cross-compiled artifacts
- Added platform-specific library naming conventions
DOCUMENTATION:
- Updated build instructions for cross-compilation
- Added platform-specific configuration notes
- Enhanced Makefile documentation
SYSTEM REQUIREMENTS:
- For Linux builds: musl-tools
- For cross-compilation from Mac: x86_64-linux-musl-gcc
BREAKING CHANGES:
- Build process now requires additional tools for cross-compilation
- Platform-specific configurations may need updates
KNOWN ISSUES:
- This is a beta release and may contain bugs or incomplete features
- Cross-compilation requires specific toolchain setup
NEXT STEPS:
- Test cross-compiled binaries in various environments
- Gather feedback on cross-platform compatibility
- Optimize build process for different platforms
- Prepare for stable 0.4.x release
Upgrading:
To upgrade to this version, update your Cargo.toml:
[dependencies]
polycrypt-rs = "0.4.5-beta.1"For the next version iteration, considering the current changes and roadmap, I would suggest targeting v0.4.6-beta.1 for further platform-specific optimizations and potentially v0.5.0 for the stable release once cross-platform support is fully validated.
v0.4.4-beta.1
Release v0.4.4-beta.1
NOTES:
This beta release focuses on refactoring the Rust FFI layer, updating the Go and Python wrappers, and introducing benchmarking capabilities. It marks a significant step towards stabilizing the library and preparing for production use case evaluation.
FEATURES:
- Introduced benchmarking capabilities using the
criterioncrate
ENHANCEMENTS:
- Refactored Rust FFI layer for improved error handling and memory management
- Updated Go wrapper (polycrypt-go) to use new FFI structure
- Updated Python wrapper (polycrypt-py) to use new FFI structure
- Improved consistency between Go and Python wrappers
- Simplified error handling in both wrappers
- Updated FFI benchmarks to use new FFIResult structure
- Removed obsolete
bench_ffi_allocate_free_bufferbenchmark
DOCUMENTATION:
- Updated README with new project description and usage instructions
- Added documentation for batch operations
BUG FIXES:
- Fixed issues related to key validation in FFI layer
- Resolved memory leaks in FFI functions
BREAKING CHANGES:
- The FFI interface has been significantly refactored. Projects directly using the FFI layer may need to be updated.
- The
free_byte_arrayandfree_c_charfunctions have been replaced withfree_ffi_result
KNOWN ISSUES:
- This is a beta release and may contain bugs or incomplete features. Please report any issues on our GitHub issue tracker.
NEXT STEPS:
- Conduct thorough performance analysis using the new benchmarking tools
- Optimize performance for real-world use cases
- Gather feedback from beta testers on the refactored wrappers
- Prepare for stable 0.4.x release
We encourage users to try out this beta release and provide feedback, particularly on the performance and usability of the refactored FFI layer and language wrappers. Your input will be crucial in shaping the upcoming stable release.
Upgrading:
To upgrade to this version, update your Cargo.toml:
v0.3.0-beta.2
Release v0.3.0-beta.2
NOTES:
This beta release focuses on improving the build process and distribution of the polycrypt-rs library, particularly for the Go and Python wrappers. It streamlines the integration of the Rust FFI library with the native language packages, making it easier for developers to build, distribute, and use polycrypt-rs in their projects.
FEATURES:
- No new features in this release.
ENHANCEMENTS:
- build: Automate copying of Rust FFI library to Go and Python package directories
- build: Update Makefile with new commands for distributing and cleaning FFI libraries
- go: Simplify FFI library path in Go wrapper
- python: Simplify FFI library path in Python wrapper
DOCUMENTATION:
- Update .gitignore to exclude Rust FFI library files in various formats
BUG FIXES:
- No specific bug fixes in this release.
BREAKING CHANGES:
- The location of the Rust FFI library file has changed for both Go and Python wrappers. Users who have custom build processes may need to update their scripts.
KNOWN ISSUES:
- This is a beta release and may contain bugs or incomplete features. Please report any issues on our GitHub issue tracker.
NEXT STEPS:
- Continue gathering feedback from beta testers
- Further refine the build and distribution process
- Conduct thorough testing across different platforms and environments
- Prepare for stable 0.3.0 release
We encourage users to try out this beta release and provide feedback to help us improve the library before the stable 0.3.0 release. Special attention to the build process and library distribution on different platforms would be appreciated.
v0.3.0-beta.1
Release v0.3.0-beta.1
NOTES:
- This beta release marks a significant milestone in the development of polycrypt-rs, introducing native language wrappers for Go and Python. These wrappers provide a more idiomatic and user-friendly interface to the underlying Rust library, making it easier for developers to integrate polycrypt-rs into their projects.
FEATURES:
- New Feature: Native language wrappers for Go and Python
- New Feature: Improved project structure with separate packages for Go and Python implementations
ENHANCEMENTS:
- go: Implement
PolyCryptstruct with methods for all cryptographic operations - python: Create
PolyCryptclass with methods for all cryptographic operations - examples: Reorganize and update Go and Python examples to use new wrappers
- tests: Refactor and expand tests for Go and Python to cover new wrapper implementations
- build: Update Makefile with new file paths and improved test running commands
DOCUMENTATION:
- Update README with new project structure and usage instructions for Go and Python wrappers
- Add inline documentation for Go and Python wrapper implementations
BUG FIXES:
- Fix potential memory leaks in Go and Python FFI implementations by properly freeing allocated memory
BREAKING CHANGES:
- The Go and Python interfaces have changed significantly. Users will need to update their code to use the new
PolyCryptstruct/class instead of directly calling FFI functions.
KNOWN ISSUES:
- This is a beta release and may contain bugs or incomplete features. Please report any issues on our GitHub issue tracker.
NEXT STEPS:
- Gather feedback from beta testers
- Improve error handling and edge case coverage
- Conduct thorough performance benchmarking
- Prepare for stable 0.3.0 release
We encourage users to try out this beta release and provide feedback to help us improve the library before the stable 0.3.0 release.
v0.2.0
Release v0.2.0
NOTES:
- This update significantly enhances the library's capabilities, allowing for more efficient processing of multiple records in a single operation. Users can now perform batch encryption and decryption across all supported languages (Rust, Go, and Python).
FEATURES:
- New Feature: Batch encryption and decryption functionality
- New Feature: FFI bindings for batch operations in Go and Python
ENHANCEMENTS:
- core: Implement
decrypt_fields_in_batchandencrypt_fields_in_batchfunctions in Rust core (src/crypto/encryption.rs) - go: Add
decryptFieldsInBatchandencryptFieldsInBatchfunctions to Go bindings - python: Add
decrypt_fields_in_batchandencrypt_fields_in_batchfunctions to Python bindings - examples: Update Go and Python examples to demonstrate batch operations
- tests: Add tests for batch operations in Rust, Go, and Python
DOCUMENTATION:
- Update README with new project description and usage instructions for batch operations
BUG FIXES:
- No bug fixes in this release