eskimojo's Avatar

eskimojo

@eskimojo

Redux Toolkit co-maintainer, and developer of https://schemabenchmarks.dev/. pfp and banner by @popurri_arts he/him

45
Followers
17
Following
15
Posts
20.08.2023
Joined
Posts Following

Latest posts by eskimojo @eskimojo

🚨 Exciting update! Our Schema Benchmarks OSS project now has a dedicated section for Standard Schema.

Check it out and discover how fast your favorite Standard Schema libraries like @valibot.dev, @zod.dev, @arktype.io, Effect and more really are! πŸ“ˆ

23.02.2026 20:30 πŸ‘ 6 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Post image

an update to this:
i noticed a discrepancy between our zod benchmark and zod's docs, namely that we were using a default import and the docs show a namespace import.

updating our benchmark to match the docs brought zod down to a much more reasonable 16KB.

22.02.2026 01:28 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

quick update re: Typebox - it had been slowed down by a feature in v1 that attempts to coerce an invalid value into a valid one. v1.1 now makes that feature opt-in.

here's an updated set of results, with a vast improvement in typebox's performance:

20.02.2026 23:57 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

it's certainly one of the most performant options πŸ˜„ there are of course more subjective reasons you may opt for a library over another - you may be willing to sacrifice some microseconds for a DX/API you like more πŸ˜‰

19.02.2026 22:27 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

We'll also aim to expand to other types of benchmarking and comparison - I'm already investigating capturing error messages and traces, inspired by bsky.app/profile/null...

19.02.2026 17:05 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Proud to have teamed up with @eskimojo.bsky.social on Schema Benchmarks! πŸ™Œ

Valibot and Typia neck-and-neck on bundle size (~1.9KB gzipped)β€”the fight for the smallest bundles is heating up! πŸ”₯

Transparent metrics like these help us all improveβ€”dive in and let us know what you think!

19.02.2026 15:46 πŸ‘ 4 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Preview
Schema Benchmarks Compare the performance of different schema validation libraries.

To see our results in depth, check out schemabenchmarks.dev!

Reckon we've missed a library, or thought of an improvement to our methodology? We'd love to hear from you! github.com/open-circle/...

Want to do one better and DIY? Thanks! Give this a read: schemabenchmarks.dev/contributing

19.02.2026 15:35 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Now for parsing; where the schema returns a new value. We mark try/catch tests with *, and "abort early" tests with †.

Libraries that can abort early (Valibot, Effect, joi) have an advantage with invalid data, and Typebox clocks in slowest, constrasting its validation results.

19.02.2026 15:35 πŸ‘ 2 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Post image

Validation time! That's simply checking whether a value matches a schema, and only returning a boolean. We check against both valid and invalid data (these results are for invalid data):

Typia, Typebox and Ajv are all blazing fast at this. Yup is far slower, with joi following.

19.02.2026 15:35 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

With regards to initialisation time:

Some libraries are very quick here (Typia, VineJS, Rod). Most libraries achieve a fairly speedy initialisation time, with the exception of Ajv - currently measuring in at over 4ms πŸ˜…

19.02.2026 15:35 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

Our current results, starting with bundle size (compiled with @rolldown.rs):

Typia and Valibot lead here, with very similar results (~1.9KB minified + gzipped). Zod brings up the rear, maybe due to its extensive language support. Its mini variant however is far smaller, at 5KB.

19.02.2026 15:35 πŸ‘ 2 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Preview
Welcome | Schema Benchmarks Welcome to Schema Benchmarks!

Check out our welcome post over at schemabenchmarks.dev/blog/welcome!

We measure different aspects of runtime performance for schemas:
⏱️ Initialisation
βœ… Validation
πŸ”„ Parsing

We also translate πŸ“¦ bundle size directly into 🌩️download speed 😎

19.02.2026 15:35 πŸ‘ 5 πŸ” 1 πŸ’¬ 2 πŸ“Œ 1
Post image

Incredibly hyped to announce Schema Benchmarks, a project I've been steadily working on in collaboration with @fabianhiller.com!

It aims to provide a central and transparent resource for many of the metrics that matter for schemas, including bundle size and runtime performance πŸ˜„

19.02.2026 15:35 πŸ‘ 15 πŸ” 4 πŸ’¬ 2 πŸ“Œ 1

Should we drop a dedicated open-source project comparing ALL major schema libs? πŸ€”

We could test:
⏱️ Initialization speed
βœ… Validation speed
⚑ Parsing speed
πŸ“¦ Download time (bundle size)

If this gets traction… we launch it πŸš€πŸ“Š

04.01.2026 18:48 πŸ‘ 43 πŸ” 5 πŸ’¬ 0 πŸ“Œ 2

getOrInsert is a util i end up ponyfilling in the vast majority of my projects, very much looking forward to it being supported enough to use natively

14.12.2025 11:45 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

reported

28.09.2025 11:02 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

the traditional way

02.09.2025 16:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Redux toolkit has pretty much nailed all the pain points I’ve previously had with redux, which I still use a ton and love, but wasn’t able to upgrade to rtk yet. Started redoing a very old app with it and it has so much clarity and way less boilerplate. Thank you @acemarke.dev, @phry.dev and all...

03.01.2025 19:47 πŸ‘ 21 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Preview
Element: className property - Web APIs | MDN The className property of the Element interface gets and sets the value of the class attribute of the specified element.

they're not attributes, they're properties - which also explains className and htmlFor:
developer.mozilla.org/en-US/docs/W...
developer.mozilla.org/en-US/docs/W...

20.12.2024 18:11 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
The Apollo GraphQL VS Code extension now ships with Apollo Client Devtools!
The Apollo GraphQL VS Code extension now ships with Apollo Client Devtools! YouTube video by phryneas

The Apollo GraphQL VS Code extension now ships with Apollo Client Devtools!

This enables you to use the Apollo Client Devtools with React Native or node applications.

Try it out and let us know what you think πŸ™‚

13.12.2024 14:44 πŸ‘ 7 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0