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.
6.5.0 (2026-03-20)
- core: introduce SiftExplainer for human-readable regex translation (51cf602)
6.4.0 (2026-03-18)
- graalvm: introduce safe execute API and EngineScope interface (31c5360)
6.3.2 (2026-03-18)
- align JdkEngine null handling and optimize AST feature caching (de8be48)
6.3.1 (2026-03-17)
- core: enforce feature propagation in AST container nodes (4f6c83d)
6.3.0 (2026-03-17)
- engine: enforce Template Method, OCP, and resource safety (f27553a)
6.2.0 (2026-03-16)
- graalvm: introduce GraalVM TRegex execution backend (9ebdf7c)
- graalvm: remove platform dependency to fix CycloneDX BOM generation (a8c8d75)
6.1.0 (2026-03-16)
- re2j: implement RE2J engine (6c8dcfa)
6.0.0 (2026-03-15)
- core: The terminal method
.sieve()now returns aSiftCompiledPatternabstraction instead of ajava.util.regex.Pattern.
- core: decouple regex compilation to support pluggable engines (25c9ff7)
5.6.0 (2026-03-13)
- core: add comprehensive execution and extraction API to SiftPattern (5815fc8)
5.5.0 (2026-03-12)
- core: implement advanced regex features and class intersections (8567faf)
5.4.0 (2026-03-12)
- core: add caseless letters and symbols Unicode support (bf769ff)
5.3.0 (2026-03-11)
- core: implement robust recursion engine for nested structures (113f598)
5.2.0 (2026-03-11)
- core: implement type-safe conditional (If-Then-Else) regex DSL (94927e2)
5.1.0 (2026-03-11)
- dsl: integrate Type-Safe lookaround assertions into builder chain (0419cd3)
5.0.0 (2026-03-09)
- streamline connector interfaces and extract phantom types
- rename pattern() to of() for better DSL readability
- rename pattern() to of() for better DSL readability (d65078c)
- streamline connector interfaces and extract phantom types (33da874)
4.0.0 (2026-03-07)
- resolve semantic mismatch in SiftPattern matching
- resolve semantic mismatch in SiftPattern matching (7726030)
3.0.2 (2026-03-07)
- resolve silent metadata loss in wrapped patterns (716ef68)
3.0.1 (2026-03-07)
3.0.0 (2026-03-06)
- SiftPattern now requires a generic context . Invalid regex compositions (like applying modifiers to fixed quantifiers or nesting roots) will now fail at compile-time instead of runtime.
- implement Type-Driven Design and Phantom Types for compile-time safety (dae1784)
2.4.4 (2026-03-06)
- core: enforce absolute boundary validation in factories (1558848)
2.4.3 (2026-03-05)
- core: prevent raw regex injection by sealing SiftPattern (23fdd06)
2.4.2 (2026-03-04)
- core: implement lazy backreference validation (2853a9a)
2.4.1 (2026-03-04)
- optimize UUID and MAC address patterns in SiftCatalog using native hexDigits class (bc8932c)
2.4.0 (2026-03-04)
- add control characters and utility classes to DSL (e406ecd)
2.3.2 (2026-03-03)
- docs: remove extra space in javadoc to test pipeline (47038e3)
2.3.1 (2026-03-03)
- docs: correct spacing in documentation (32229a2)
2.3.0 (2026-03-03)
- api: add global regex flags and enforce varargs safety (4b9c494)
- core: add anti-ReDoS protection and achieve 100% test coverage (eaac349)
- core: add email, webUrl and isoDate to SiftCatalog (d75cd63)
- core: add lookahead and lookbehind support to SiftPatterns (58d0601)
- core: add sieve() method to return cached compiled Pattern (e018b78)
- core: add support for COMMENTS and UNICODE_CASE global flags (4b0a26b)
- core: enhance Developer Experience with fail-fast guards and convenience methods (31cc23f)
- core: implement fail-fast validation for duplicate group names (80f66dc)
- core: implement secure named captures and backreferences with strict validation (5106940)
- core: implement type-safe pattern grouping and complete API documentation (1f45453)
- core: introduce custom character range support and align JavaDoc (4d3e71b)
- implement Unicode character classes, full ASCII/UTF symmetry, and architecture cleanup (d89756e)
- migrate to multi-module architecture with Jakarta Validation support (1fd98fd)
- annotations: narrow exception scope in SiftMatchValidator (1a365c1)
- annotations: replace RuntimeException with ValidationException in SiftMatchValidator (2bcbda9)
- CI failing when coverage is unmodified (625cfeb)
- core: add fail-fast validation to SiftBuilder.shake() (e14faf0)
- core: add volatile to SiftBuilder cache fields (e161674)
- core: escape brackets and whitespace to prevent runtime regex crashes (8bee547)
- core: memoize shake() and implement identity methods on SiftBuilder (8594222)
- core: prevent meaningless zero-max quantifiers in builder (cffb73c)
- core: prevent varargs null poisoning and empty string edge cases (4575231)
- core: remove circular dependency in GroupName static init (f12bde6)
- core: seal group collision loopholes and harden varargs validation (b6a9648)
- core: support underscores in group names (22cd832)
- maven badges (59a41ff)
- resolve quantifier overwrite bug in withOptional syntactic sugar (b4c74a2)
- core: eager initialization of HEX_CHAR in SiftCatalog (1551305)
- core: implement double-checked locking and concurrent coverage tests (c130136)
- core: memoize anyOf(List) pattern generation to prevent redundant allocations (3d2d0bd)
- core: memoize SiftPatterns lambdas and add caching tests (401fece)
- optimize anythingBut() to be zero-allocation (cd0115f)
2.2.0 (2026-03-03)
- api: add global regex flags and enforce varargs safety (4b9c494)
- core: add anti-ReDoS protection and achieve 100% test coverage (eaac349)
- core: add email, webUrl and isoDate to SiftCatalog (d75cd63)
- core: add lookahead and lookbehind support to SiftPatterns (58d0601)
- core: add sieve() method to return cached compiled Pattern (e018b78)
- core: add support for COMMENTS and UNICODE_CASE global flags (4b0a26b)
- core: enhance Developer Experience with fail-fast guards and convenience methods (31cc23f)
- core: implement fail-fast validation for duplicate group names (80f66dc)
- core: implement secure named captures and backreferences with strict validation (5106940)
- core: implement type-safe pattern grouping and complete API documentation (1f45453)
- core: introduce custom character range support and align JavaDoc (4d3e71b)
- implement Unicode character classes, full ASCII/UTF symmetry, and architecture cleanup (d89756e)
- migrate to multi-module architecture with Jakarta Validation support (1fd98fd)
- annotations: narrow exception scope in SiftMatchValidator (1a365c1)
- annotations: replace RuntimeException with ValidationException in SiftMatchValidator (2bcbda9)
- CI failing when coverage is unmodified (625cfeb)
- core: add fail-fast validation to SiftBuilder.shake() (e14faf0)
- core: add volatile to SiftBuilder cache fields (e161674)
- core: escape brackets and whitespace to prevent runtime regex crashes (8bee547)
- core: memoize shake() and implement identity methods on SiftBuilder (8594222)
- core: prevent meaningless zero-max quantifiers in builder (cffb73c)
- core: prevent varargs null poisoning and empty string edge cases (4575231)
- core: remove circular dependency in GroupName static init (f12bde6)
- core: seal group collision loopholes and harden varargs validation (b6a9648)
- core: support underscores in group names (22cd832)
- maven badges (59a41ff)
- resolve quantifier overwrite bug in withOptional syntactic sugar (b4c74a2)
- core: eager initialization of HEX_CHAR in SiftCatalog (1551305)
- core: implement double-checked locking and concurrent coverage tests (c130136)
- core: memoize anyOf(List) pattern generation to prevent redundant allocations (3d2d0bd)
- core: memoize SiftPatterns lambdas and add caching tests (401fece)
- optimize anythingBut() to be zero-allocation (cd0115f)
2.1.0 (2026-03-03)
- core: add support for COMMENTS and UNICODE_CASE global flags (4b0a26b)
- core: eager initialization of HEX_CHAR in SiftCatalog (1551305)
- core: memoize anyOf(List) pattern generation to prevent redundant allocations (3d2d0bd)
- Core: Add support for
COMMENTS(?x) andUNICODE_CASE(?u) global flags. - Core: Enhance Developer Experience with fail-fast guards and convenience methods.
- Core: Add
email,webUrl, andisoDatetoSiftCatalog.
- Core (Architecture): Dismantle
SiftBuilderGod Class into segregated, type-safe immutable nodes. - Core (Architecture): Rename
AbstractTypeSteptoBaseTypeStepfor clearer semantics. - Core (API): Rename type methods to be more readable and discoverable via auto-complete.
- Core: Encapsulate quantifier modifiers (
?,+) into a stateful Enum to prevent bugs.
- Core: Eager initialization of
HEX_CHARinSiftCatalogto avoid lock contention on boot. - Core: Memoize
anyOf(List)pattern generation to prevent redundant allocations. - Core: Optimize hex allocations.
- Core: Document architectural decisions for "fat" connector classes and memory optimization.
- Core: Clarify limitations of anonymous capturing groups in
SiftPatterns. - Core: Clarify email validation documentation in
SiftCatalog. - Core: Remove legacy banner-style comments for cleaner code.
- Docs: Update README.md with recent architectural changes.
- Core: Support underscores in capturing group names.
- Core: Add
sieve()method to return cached compiledPattern. - Core: Introduce custom character range support.
- Core: Enforce strict encapsulation for
PatternAssembler. - Core: Disambiguate regex modifier constants.
- Core: Implement SOLID delegates for the State Machine.
- Core: Remove public modifier from package-private constants.
- Core: Memoize
SiftPatternslambdas. - Core: Implement double-checked locking for thread-safe regex compilation and caching.
- Core: Optimize
anythingBut()to be zero-allocation.
- Core: Prevent meaningless zero-max quantifiers in the builder.
- Core: Add
volatilekeyword to cache fields for thread-safety. - Core: Add fail-fast validation to
SiftBuilder.shake(). - Core: Memoize
shake()and implement identity methods onSiftBuilder. - Core: Remove circular dependency in
GroupNamestatic initialization. - Annotations: Narrow exception scope in
SiftMatchValidatorand replaceRuntimeExceptionwithValidationException.
- Core: Implement fail-fast validation for duplicate group names.
- Core: Enforce compile-time safety for character class modifiers.
- Core: Seal group collision loopholes and harden varargs validation.
- Core: Escape brackets and whitespace to prevent runtime regex crashes.
- Core: Add executable docs for literal null-concatenation anti-pattern.
- Core: Centralize build automation and enforce global null-safety.
- Core: Implement defensive null-safety and refine documentation.
- Core: Prevent varargs null poisoning and empty string edge cases.
- Core: Implement type-safe pattern grouping.
- Core: Add lookahead and lookbehind support to
SiftPatterns. - Core: Implement secure named captures and backreferences with strict validation.
- Core: Add global regex flags and enforce varargs safety.
- Core: Implement Unicode character classes and full ASCII/UTF symmetry.
- Core: Add anti-ReDoS protections.
- Core: Enforce compile-time safety for anti-backtracking operations.
- Core: Extract
PatternAssemblerto decouple state machine from string assembly (SRP).
- Project: Migrate to multi-module architecture.
- Annotations: Add Jakarta Validation support (
@SiftMatch). - Core: Initial core library structure.
- Core: Resolve quantifier overwrite bug in
withOptionalsyntactic sugar.
- CI/CD: Add GitHub Actions pipeline for automated Maven Central publishing.
- CI/CD: Setup JaCoCo coverage reporting.