Skip to content

Conversation

@DavidBadura
Copy link
Member

@DavidBadura DavidBadura commented Jan 8, 2026

This pull request introduces a new extension-based architecture for configuring the hydrator, adds a builder pattern for constructing hydrator instances, and refactors cryptography support to use metadata enrichers. These changes make the hydrator more modular, extensible, and easier to configure, while also updating tests and benchmarks to use the new approach.

@DavidBadura DavidBadura added this to the 2.0.0 milestone Jan 8, 2026
@DavidBadura DavidBadura added the enhancement New feature or request label Jan 8, 2026
@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Hello 👋

here is the most recent benchmark result:

HydratorWithCryptographyBench
=============================

+-------------------------------+-------------------+-------------------+-----------------+------------+
|                               | time (kde mode)                       | memory                       |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| subject                       | Tag: <current>    | Tag: base         | Tag: <current>  | Tag: base  |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| benchHydrate1Object ()        | 81.200μs (±0.00%) | 80.600μs (±0.00%) | 2.739mb         | 3.175mb    |
| benchExtract1Object ()        | 9.400μs (±0.00%)  | 9.200μs (±0.00%)  | 2.739mb         | 3.175mb    |
| benchHydrate1000Objects ()    | 3.901ms (±0.00%)  | 3.959ms (±0.00%)  | 2.965mb         | 3.423mb    |
| benchExtract1000Objects ()    | 5.672ms (±0.00%)  | 5.517ms (±0.00%)  | 2.937mb         | 3.396mb    |
| benchHydrate1000000Objects () | 2.158s (±0.00%)   | 2.239s (±0.00%)   | 2.965mb         | 3.423mb    |
| benchExtract1000000Objects () | 3.936s (±0.00%)   | 3.964s (±0.00%)   | 2.937mb         | 2.936mb    |
+-------------------------------+-------------------+-------------------+-----------------+------------+

HydratorBench
=============

+-------------------------------+-------------------+-------------------+-----------------+------------+
|                               | time (kde mode)                       | memory                       |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| subject                       | Tag: <current>    | Tag: base         | Tag: <current>  | Tag: base  |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| benchHydrate1Object ()        | 72.800μs (±0.00%) | 80.600μs (±0.00%) | 2.695mb         | 2.695mb    |
| benchExtract1Object ()        | 4.600μs (±0.00%)  | 4.200μs (±0.00%)  | 2.695mb         | 2.695mb    |
| benchHydrate1000Objects ()    | 2.633ms (±0.00%)  | 2.538ms (±0.00%)  | 2.788mb         | 2.787mb    |
| benchExtract1000Objects ()    | 2.513ms (±0.00%)  | 2.751ms (±0.00%)  | 2.695mb         | 2.695mb    |
| benchHydrate1000000Objects () | 1.482s (±0.00%)   | 1.515s (±0.00%)   | 2.788mb         | 2.788mb    |
| benchExtract1000000Objects () | 1.681s (±0.00%)   | 1.679s (±0.00%)   | 2.695mb         | 2.695mb    |
+-------------------------------+-------------------+-------------------+-----------------+------------+

HydratorWithLazyBench
=====================

+------------------------------------------+--------------------+--------------------+-----------------+------------+
|                                          | time (kde mode)                         | memory                       |
+------------------------------------------+--------------------+--------------------+-----------------+------------+
| subject                                  | Tag: <current>     | Tag: base          | Tag: <current>  | Tag: base  |
+------------------------------------------+--------------------+--------------------+-----------------+------------+
| benchHydrate1Object ()                   | 0.600μs (±0.00%)   | 0.600μs (±0.00%)   | 2.695mb         | 2.695mb    |
| benchHydrate1ObjectTriggerInit ()        | 120.400μs (±0.00%) | 117.200μs (±0.00%) | 2.767mb         | 2.767mb    |
| benchHydrate1000Objects ()               | 439.000μs (±0.00%) | 454.000μs (±0.00%) | 2.726mb         | 2.695mb    |
| benchHydrate1000ObjectsTriggerInit ()    | 3.438ms (±0.00%)   | 3.417ms (±0.00%)   | 2.768mb         | 2.767mb    |
| benchHydrate1000000Objects ()            | 293.846ms (±0.00%) | 297.014ms (±0.00%) | 2.726mb         | 2.695mb    |
| benchHydrate1000000ObjectsTriggerInit () | 2.231s (±0.00%)    | 2.189s (±0.00%)    | 2.768mb         | 2.767mb    |
+------------------------------------------+--------------------+--------------------+-----------------+------------+

This comment gets update everytime a new commit comes in!

@DavidBadura DavidBadura merged commit 4656258 into 2.0.x Jan 17, 2026
14 of 16 checks passed
@DavidBadura DavidBadura deleted the hydrator-builder branch January 17, 2026 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants