zod-fast-check
zod-fast-check copied to clipboard
Support for Zod 4 (now in beta)
I'm posting this issue to all the libraries currently listed in the Ecosystem section of Zod's README. Apologies for the spam! Zod 4 is a big release and it's important to get as much of the ecosystem migrated as possible! 👍
Zod 4 is now in beta
Hello! Colin here, creator of Zod. Thank you for contributing this package to the Zod ecosystem!
FYI, the first beta of Zod 4 has been released. It will be in beta for 4 weeks to allow time for ecosystem libraries (such as yours) to implement support before the first stable version is released. The first stable release will be in mid-May. Keep an eye on this PR to track progress: https://github.com/colinhacks/zod/pull/4074
Announcement post: https://v4.zod.dev/v4 Migration guide: https://v4.zod.dev/v4/changelog
⚠️ Note — To avoid confusion and outdated information, the Ecosystem page for Zod 4 is starting from scratch. You'll need to implement support for Zod 4 (guidance below). Once you've done that, submit a PR adding yourself to this file: https://github.com/colinhacks/zod/blob/v4/packages/docs/components/ecosystem.tsx
Migration
There have been some significant changes.
- A new library
@zod/minihas been released with a treeshakable/functional API that mirrors Zod's - To facilitate code sharing between
zodand@zod/mini, they both have a dependency on a new common core library@zod/core. - This new package implements the schema subclasses that are then extended by
zodand@zod/mini(and potentially future libraries). It makes it easy to support all these libraries simultaneously, with just one peerDependency on your end. There is little reason for any framework/library to depend directly onzodanymore.
pnpm install @zod/core@^0.0.1
This page is intended as a jumping-off point with some guidance for library authors: @zod/core docs
Don't hesitate to reach out for help/guidance!
- Post to the #zod4 channel on the Discord
- Open an issue/discussion on the repo
- DM me on Discord or X
Here's a dedicated guide for library authors that answers some common questions: https://v4.zod.dev/library-authors
- Best practices around peer dependencies
- How to support Zod v3 and Zod v4 simultaneously
- How to support Zod & Zod Mini without extra work
Note that the @zod/core package has been abandoned in favor of a subpath: zod/v4/core. This makes it much easier for libraries with build on top of Zod with a single peer dependency on "zod". The reasons for this change are explained in more detail in the beta announcement: https://v4.zod.dev/v4
Thanks Colin. Zod 4 looks really exciting.
I am planning to add support for Zod 4 at some point in the next couple of months. Apologies to anyone who is blocked from upgrading to Zod 4 by the current lack of support in this library.
@DavidTimms Me and potentially some people from my team would be happy to help with the upgrade. Let me know when some work has been split up.
Also, my fork adds support for bigint and readonly (the 3.18 compatibility tests are failing though).