Skip to content

Releases: xjasonli/cel-cxx

v0.2.4

17 Dec 09:58

Choose a tag to compare

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

28 Nov 10:07

Choose a tag to compare

Changed

  • Update dependencies version
    • cxx 1.0.189
    • cel-cpp 0.14.0

v0.2.2

26 Nov 15:58

Choose a tag to compare

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

14 Aug 13:47

Choose a tag to compare

Added

  • Enhanced Opaque Derive Macro
    • Added display attribute support for automatic std::fmt::Display implementation
    • 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

v0.2.0

23 Jul 08:49

Choose a tag to compare

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
  • 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 EnvBuilder with with_ext_* methods for all extensions
    • Improved type conversion handling between Rust and CEL types
    • Better error handling and debugging capabilities

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, \2 instead 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.cc for Optional type support
  • Extended extensions.h/extensions.cc with 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

11 Jul 09:18

Choose a tag to compare

Added

  • Windows MSVC support for x86_64-pc-windows-msvc target
    • Full compilation and runtime support on Windows with MSVC(2022) toolchain
    • Windows-specific build configuration and dependency management

v0.1.4

11 Jul 09:18

Choose a tag to compare

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/ and cel-windows/
    • Simplified build configuration and reduced duplication
  • 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
  • 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

v0.1.3

29 Jun 18:21

Choose a tag to compare

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)
  • 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)

Changed

  • Platform-separated build architecture to isolate platform-specific dependencies
    • build-linux/ - Pure Linux builds without Android/Apple dependencies
    • build-apple/ - macOS and iOS builds with Apple toolchain
    • build-android/ - Android builds with NDK integration
    • build-windows/ - Windows builds (placeholder)
  • Improved target detection and automatic build directory selection
  • Enhanced platform-specific configurations in .bazelrc files

v0.1.2

28 Jun 16:15

Choose a tag to compare

Added

  • Added support for smol async runtime

v0.1.1

28 Jun 05:24

Choose a tag to compare

Fixed

  • Fixed macOS compatibility issues