Skip to content

v1.1.0 — Performance, observability & regression guard

Choose a tag to compare

@altansayan altansayan released this 25 Jul 23:07
· 27 commits to main since this release

What's new in 1.1.0

Performance

  • EC cryptography 50–100× fastereth_wallet, btc_wallet, sol_wallet, webauthn_credential, fido2_assertion: BigInteger scalar multiplication replaced with JDK-native APIs. 8–22 ms/call → < 0.15 ms/call.
  • SecureRandom consolidation — single shared Randoms.SECURE instance eliminates per-call construction and reduces lock contention under high concurrency.
  • Pattern constants — all regex patterns promoted to static final; eliminates per-call recompilation in hot paths (JWT, IBAN masking, email masking).
  • O(1) type dispatch — 45 sequential Set.contains() checks replaced with a single Map lookup.

Observability

  • SLF4J logging added to all 39 generator classes. All 14 inconsistent catch blocks standardised: log.warn(message, e) + return "ERROR: ...". The FinancialMarketsGen silent swallow (zero-byte signature, no error signal) is fixed.
  • CI hot-path logging lint guard — build fails if log.debug/log.info appears inside generators/, preventing accidental throughput regression.

Testing

  • 423-case performance regression guard (PerfMeasurement):
    • Fast (397 types): 1 000 iterations/type, ≤ 1.5 ms/call
    • Heavy (26 types): 10 iterations/type, per-type calibrated thresholds — oidc_token_set, eth/btc/sol_wallet, x509_cert, mnemonic, webauthn_credential, fido2_assertion, mt940, camt053, ubl_invoice, swift_mt103, pain001, fhir_patient, hl7_message, jwt_attack, asn1_fuzz, ai_embedding, ai_vector, jwks, oidc_token
    • All 423 tests run in ≈ 7.5 s on Java 17/21/25

Bug Fixes

  • 12 missing _masked types added to registry and generators
  • JSON control-character escaping (U+0000–001F) now RFC 8259 compliant
  • CryptoFuzzGen NUL byte replaced with Unicode escape (no longer detected as binary)

JMH Benchmarks

  • New benchmarks module: mvn verify -pl benchmarks

Full changelog: CHANGELOG.md

Installation: JMeter Plugins Manager → search mock-jutsu or drop the JAR into $JMETER_HOME/lib/ext/