Releases: xjasonli/cel-cxx
Releases · xjasonli/cel-cxx
v0.2.4
Added
- Macro System: Compile-time expression expansion support
- Global macros for function-like invocations
- Receiver macros for method-like invocations
- Variable-argument macro support
- MacroExprFactory for expression building during expansion
EnvBuilder::register_macro()for macro registration
Changed
- Enhanced expression manipulation capabilities with macro support
v0.2.3
v0.2.2
Added
- Comprehensions Extension: Support for list comprehensions with filtering
- Documentation System: Restructured documentation with separate English (
docs/) and Chinese (docs-cn/) directories - CEL Reference Guide: Complete reference documentation for CEL language features and extensions
Changed
- Member Function Constraints: Enforced non-empty arguments requirement for member functions at compile-time and runtime
- cel-cpp Update: Updated to latest cel-cpp with improved AST implementation (AstImpl renamed to Ast)
v0.2.1
Added
- Enhanced Opaque Derive Macro
- Added
displayattribute support for automaticstd::fmt::Displayimplementation - Support for both automatic Debug-based formatting and custom format expressions
- Improved macro documentation with comprehensive usage examples
- Better developer experience for implementing Display trait on opaque types
- Added
v0.2.0
Added
-
Complete CEL Standard Library Implementation
- Full support for all CEL standard library functions with comprehensive test coverage
- String operations, list/map manipulations, type conversions, and utility functions
- Mathematical operations, comparison functions, and type checking utilities
-
Optional Types Support
- Native
Optional<T>wrapper type for safe null handling - Safe navigation operators and optional value processing
- Integration with all CEL extensions and standard library functions
- Native
-
Comprehensive CEL Extensions Support
- Strings Extension: Advanced string manipulation (join, split, quote, etc.)
- Math Extension: Mathematical functions (abs, ceil, floor, bitwise operations, etc.)
- Lists Extension: List processing utilities (flatten, reverse, slice, etc.)
- Sets Extension: Set operations (contains, equivalent, intersects)
- Encoders Extension: Base64 encoding/decoding operations
- Regex Extension: Pattern extraction (
regex.extract,regex.extractAll,regex.replace) - RE Extension: C++ specific regex functions (
re.extract,re.capture,re.captureN) - Bindings Extension: Variable binding macros (
cel.bind)
-
Enhanced Documentation System
- Complete English documentation for all CEL features and extensions
- Comprehensive Chinese (Simplified) documentation translation
- Detailed API references with practical examples and usage patterns
- RE2 regex syntax documentation links for all regex-related functions
-
Improved Runtime Features
- Automatic absl logging initialization to prevent runtime warnings
- Enhanced extension configuration and registration system
- Modular extension loading with dependency checking
Changed
-
Enhanced Build System
- Updated build configuration for new CEL-CPP dependencies
- Improved Bazel integration with MODULE.bazel updates
- Better platform compatibility including MSVC support fixes
-
API Improvements
- Enhanced
EnvBuilderwithwith_ext_*methods for all extensions - Improved type conversion handling between Rust and CEL types
- Better error handling and debugging capabilities
- Enhanced
Fixed
-
CEL-CPP Implementation Issues
- Applied patches to fix missing functionality in upstream CEL-CPP
- Resolved optional type registration issues
- Fixed regex extension compatibility problems
-
Documentation Corrections
- Fixed incorrect function signatures and behavior descriptions
- Corrected regex capture group syntax (
\1,\2instead of$1,$2) - Updated extension documentation to match actual implementation
-
Runtime Stability
- Fixed clippy warnings and code quality issues
- Improved memory management and resource handling
- Enhanced error propagation and handling
Technical Details
- Added
optional.h/optional.ccfor Optional type support - Extended
extensions.h/extensions.ccwith all standard CEL extensions - Comprehensive test suites for all new functionality (
tests/standard-library.rs,tests/optional.rs,tests/extensions-*.rs) - Practical examples demonstrating real-world usage scenarios (
examples/standard-library.rs,examples/extensions-*.rs)
v0.1.5
v0.1.4
Added
- Cross-compilation support via cross-rs
- Automatic toolchain detection and configuration for cross-compilation environments
- Support for select targets including ARM Linux, MIPS, PowerPC, and RISC-V
- Seamless integration with cross-rs containers and toolchains
- Consolidated build system with unified configuration
- Merged platform-specific build directories into
cel/andcel-windows/ - Simplified build configuration and reduced duplication
- Merged platform-specific build directories into
- Separate async examples crate (
examples-async/)- Extracted async examples into dedicated crate for better organization
- Improved documentation and examples for async usage patterns
Changed
- Refactored build system architecture
- Consolidated
build-{android,apple,linux,windows}directories into unified structure - Improved build configuration management and platform detection
- Consolidated
- Enhanced Value struct with additional convenience methods
- Improved async examples organization with dedicated crate and documentation
Fixed
- Fixed test compilation errors when async features are disabled
- Added missing
#[cfg(feature = "async")]guards to prevent compilation errors - Improved conditional compilation for async-related test code
- Added missing
v0.1.3
Added
- Android platform support with NDK integration
- ARM64 (
aarch64-linux-android) - ARMv7 (
armv7-linux-androideabi) - x86_64 (
x86_64-linux-android) - x86 (
i686-linux-android)
- ARM64 (
- iOS platform support for device and simulator
- iOS device (
aarch64-apple-ios) - iOS Simulator ARM64 (
aarch64-apple-ios-sim) - iOS Simulator x86_64 (
x86_64-apple-ios)
- iOS device (
Changed
- Platform-separated build architecture to isolate platform-specific dependencies
build-linux/- Pure Linux builds without Android/Apple dependenciesbuild-apple/- macOS and iOS builds with Apple toolchainbuild-android/- Android builds with NDK integrationbuild-windows/- Windows builds (placeholder)
- Improved target detection and automatic build directory selection
- Enhanced platform-specific configurations in
.bazelrcfiles