Skip to content

Native Arbitraries - #7254

Draft
gcanti wants to merge 31 commits into
mainfrom
arbitrary
Draft

Native Arbitraries#7254
gcanti wants to merge 31 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 fast-check Native Native speedup
32 recursive samples 143 µs 112 µs 1.28x
128 constrained strings 700 µs 48.8 µs 14.34x
128 bounded numbers 68.0 µs 20.7 µs 3.29x
128 Uint8Array samples 103 µs 81.1 µs 1.27x
128 BigDecimal samples 67.1 µs 63.3 µs 1.06x
128 DateTime.Utc samples 71.8 µs 53.8 µs 1.33x
128 named time zones 51.5 µs 26.2 µs 1.97x
128 time zones 63.0 µs 31.7 µs 1.99x
128 zoned date-times 129 µs 116 µs 1.11x
32 samples through Schema filter 63.9 µs 45.0 µs 1.42x
32 unique arrays 149 µs 123 µs 1.21x
128 literal samples 39.6 µs 3.68 µs 10.76x
128 mapped samples 58.1 µs 12.8 µs 4.54x
128 samples through passing filter 57.5 µs 12.4 µs 4.64x
32 samples through selective filter 69.5 µs 39.8 µs 1.75x
128 filterMap samples 73.3 µs 31.5 µs 2.33x
Filtered failure and shrinking 13.0 µs 7.18 µs 1.81x
128 Union samples 51.5 µs 9.83 µs 5.24x
128 Schema-local Person samples 81.0 µs 25.7 µs 3.15x
128 dependent flatMap samples 120 µs 67.8 µs 1.77x
flatMap failure and shrinking 19.4 µs 5.93 µs 3.27x
Replay flatMap shrink path 12.8 µs 5.82 µs 2.20x
Passing property, 100 runs 43.0 µs 27.3 µs 1.58x
TestSchema, 100 generations 49.6 µs 35.0 µs 1.42x
First failure plus one shrink 9.28 µs 1.28 µs 7.25x
Replay recorded failure 6.82 µs 1.22 µs 5.59x

@changeset-bot

changeset-bot Bot commented Aug 14, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: bbeb668

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