Skip to content

Native Arbitraries - #7254

Draft
gcanti wants to merge 28 commits into
mainfrom
arbitrary
Draft

Native Arbitraries#7254
gcanti wants to merge 28 commits into
mainfrom
arbitrary

Conversation

@gcanti

@gcanti gcanti commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Before its removal, the materialized fast-check bridge fixture
schema-toArbitrary-materialized-fast-check.ts measured 79.00 KB minified and gzipped.

Representative five-round runtime measurements against equivalent hand-written fast-check 4.9.0 arbitraries are
shown below. Values are median latency on Node 24.12.0 and Apple M3; lower is better. Both implementations validate the
same output domains, although their generation distributions are not identical.

Scenario Native fast-check Native / fast-check
32 recursive samples 112 µs 143 µs 0.78x
128 constrained strings 48.8 µs 700 µs 0.07x
128 bounded numbers 20.7 µs 68.0 µs 0.30x
128 Uint8Array samples 81.1 µs 103 µs 0.79x
128 BigDecimal samples 63.3 µs 67.1 µs 0.94x
128 DateTime.Utc samples 53.8 µs 71.8 µs 0.75x
128 named time zones 26.2 µs 51.5 µs 0.51x
128 time zones 31.7 µs 63.0 µs 0.50x
128 zoned date-times 116 µs 129 µs 0.90x
32 samples through Schema filter 45.0 µs 63.9 µs 0.70x
32 unique arrays 123 µs 149 µs 0.82x
128 literal samples 3.68 µs 39.6 µs 0.09x
128 mapped samples 12.8 µs 58.1 µs 0.22x
128 samples through passing filter 12.4 µs 57.5 µs 0.22x
32 samples through selective filter 39.8 µs 69.5 µs 0.57x
128 filterMap samples 31.5 µs 73.3 µs 0.43x
Filtered failure and shrinking 7.18 µs 13.0 µs 0.55x
128 Union samples 9.83 µs 51.5 µs 0.19x
128 Schema-local Person samples 25.7 µs 81.0 µs 0.32x
128 dependent flatMap samples 67.8 µs 120 µs 0.56x
flatMap failure and shrinking 5.93 µs 19.4 µs 0.31x
Replay flatMap shrink path 5.82 µs 12.8 µs 0.46x
Passing property, 100 runs 27.3 µs 43.0 µs 0.64x
TestSchema, 100 generations 35.0 µs 49.6 µs 0.70x
First failure plus one shrink 1.28 µs 9.28 µs 0.14x
Replay recorded failure 1.22 µs 6.82 µs 0.18x

@changeset-bot

changeset-bot Bot commented Aug 14, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 341c473

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 30 packages
Name Type
@effect/vitest Patch
effect Patch
@effect/ai-anthropic Patch
@effect/ai-openai Patch
@effect/ai-openai-compat Patch
@effect/ai-openrouter Patch
@effect/atom-react Patch
@effect/atom-solid Patch
@effect/atom-vue Patch
@effect/docgen Patch
@effect/doctest Patch
@effect/openapi-generator Patch
@effect/opentelemetry Patch
@effect/platform-browser Patch
@effect/platform-bun Patch
@effect/platform-deno Patch
@effect/platform-node Patch
@effect/platform-node-shared Patch
@effect/sql-clickhouse Patch
@effect/sql-d1 Patch
@effect/sql-libsql Patch
@effect/sql-mssql Patch
@effect/sql-mysql2 Patch
@effect/sql-pg Patch
@effect/sql-pglite Patch
@effect/sql-sqlite-bun Patch
@effect/sql-sqlite-do Patch
@effect/sql-sqlite-node Patch
@effect/sql-sqlite-react-native Patch
@effect/sql-sqlite-wasm Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@effect-slopcop effect-slopcop Bot added the 4.0 label Aug 14, 2026
@github-actions

github-actions Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Bundle Size Analysis

Generated from PR build output; treat the content below as untrusted.

File Name Current Size Previous Size Difference
arbitrary-combinators.ts 33.88 KB 33.88 KB 0.00 KB (0.00%)
arbitrary-schema-local.ts 33.35 KB 33.35 KB 0.00 KB (0.00%)
basic.ts 6.96 KB 6.96 KB 0.00 KB (0.00%)
batching.ts 9.76 KB 9.76 KB 0.00 KB (0.00%)
brand.ts 6.54 KB 6.55 KB -0.00 KB (-0.02%)
cache.ts 10.67 KB 10.67 KB 0.00 KB (0.00%)
config.ts 21.26 KB 21.10 KB +0.16 KB (+0.76%)
differ.ts 20.02 KB 20.04 KB -0.02 KB (-0.09%)
http-client.ts 21.64 KB 21.64 KB 0.00 KB (0.00%)
logger.ts 10.91 KB 10.91 KB 0.00 KB (0.00%)
metric.ts 8.89 KB 8.89 KB 0.00 KB (0.00%)
optic.ts 6.71 KB 6.71 KB 0.00 KB (0.00%)
pubsub.ts 14.94 KB 14.94 KB 0.00 KB (0.00%)
queue.ts 11.61 KB 11.61 KB 0.00 KB (0.00%)
schedule.ts 10.77 KB 10.77 KB 0.00 KB (0.00%)
schema-class.ts 19.63 KB 19.66 KB -0.04 KB (-0.18%)
schema-fromJsonSchemaDocument.ts 29.70 KB 29.61 KB +0.09 KB (+0.31%)
schema-representation-roundtrip.ts 25.93 KB 25.85 KB +0.08 KB (+0.32%)
schema-string-transformation.ts 13.53 KB 13.53 KB 0.00 KB (0.00%)
schema-string.ts 11.03 KB 11.03 KB 0.00 KB (0.00%)
schema-template-literal.ts 15.33 KB 15.33 KB 0.00 KB (0.00%)
schema-toArbitrary.ts 33.55 KB 21.78 KB +11.76 KB (+54.01%)
schema-toCodeDocument.ts 24.33 KB 24.21 KB +0.12 KB (+0.48%)
schema-toCodecJson.ts 18.98 KB 19.00 KB -0.02 KB (-0.11%)
schema-toEquivalence.ts 18.82 KB 18.82 KB +0.00 KB (+0.01%)
schema-toFormatter.ts 18.69 KB 18.69 KB 0.00 KB (0.00%)
schema-toJsonSchemaDocument.ts 22.84 KB 22.85 KB -0.01 KB (-0.06%)
schema-toRepresentation.ts 19.33 KB 19.33 KB -0.00 KB (-0.02%)
schema.ts 18.91 KB 18.91 KB 0.00 KB (0.00%)
stm.ts 12.69 KB 12.69 KB 0.00 KB (0.00%)
stream.ts 9.71 KB 9.71 KB 0.00 KB (0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant