zod-fast-check icon indicating copy to clipboard operation
zod-fast-check copied to clipboard

Support for Zod 4 (now in beta)

Open colinhacks opened this issue 7 months ago • 3 comments

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/mini has been released with a treeshakable/functional API that mirrors Zod's
  • To facilitate code sharing between zod and @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 zod and @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 on zod anymore.
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

colinhacks avatar Apr 18 '25 04:04 colinhacks

Here's a dedicated guide for library authors that answers some common questions: https://v4.zod.dev/library-authors

  1. Best practices around peer dependencies
  2. How to support Zod v3 and Zod v4 simultaneously
  3. 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

colinhacks avatar May 14 '25 23:05 colinhacks

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 avatar May 30 '25 09:05 DavidTimms

@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).

pdonnelly3 avatar Aug 11 '25 19:08 pdonnelly3