Mirror: The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.
1<div align="center"> 2 <img alt="urql" width="250" src="packages/site/src/assets/sidebar-badge.svg" /> 3 4 <br /> 5 <br /> 6 7 <strong> 8 A highly customisable and versatile GraphQL client 9 </strong> 10 11 <br /> 12 <br /> 13 <a href="https://github.com/urql-graphql/urql/actions/workflows/ci.yml"> 14 <img alt="CI Status" src="https://github.com/urql-graphql/urql/actions/workflows/ci.yml/badge.svg?branch=main" /> 15 </a> 16 <a href="https://www.npmjs.com/package/@urql/core"> 17 <img alt="Weekly downloads" src="https://badgen.net/npm/dw/@urql/core?color=blue" /> 18 </a> 19 <a href="https://urql.dev/discord"> 20 <img alt="Discord" src="https://img.shields.io/discord/1082378892523864074?color=7389D8&label&logo=discord&logoColor=ffffff" /> 21 </a> 22 <br /> 23 <br /> 24</div> 25 26## ✨ Features 27 28- 📦 **One package** to get a working GraphQL client in React, Preact, Vue, Solid and Svelte 29- ⚙️ Fully **customisable** behaviour [via "exchanges"](https://formidable.com/open-source/urql/docs/advanced/authoring-exchanges/) 30- 🗂 Logical but simple default behaviour and document caching 31- 🌱 Normalized caching via [`@urql/exchange-graphcache`](https://formidable.com/open-source/urql/docs/graphcache) 32- 🔬 Easy debugging with the [`urql` devtools browser extensions](https://formidable.com/open-source/urql/docs/advanced/debugging/) 33 34`urql` is a GraphQL client that exposes a set of helpers for several frameworks. It's built to be highly customisable and versatile so 35you can take it from getting started with your first GraphQL project all the way to building complex apps and experimenting with GraphQL clients. 36 37**📃 For more information, [check out the docs](https://formidable.com/open-source/urql/docs/).** 38 39## 💙 [Sponsors](https://github.com/sponsors/urql-graphql) 40 41<table> 42 <tr> 43 <td align="center"><a href="https://bigcommerce.com/"><img src="https://avatars.githubusercontent.com/u/186342?s=200&v=4" width="150" alt="BigCommerce"/><br />BigCommerce</a></td> 44 <td align="center"><a href="https://wundergraph.com/"><img src="https://avatars.githubusercontent.com/u/64281914?s=200&v=4" width="150" alt="WunderGraph"/><br />WunderGraph</a></td> 45 <td align="center"><a href="https://the-guild.dev/"><img src="https://avatars.githubusercontent.com/u/42573040?s=200&v=4" width="150" alt="The Guild "/><br />The Guild</a></td> 46 </tr> 47</table> 48<table> 49 <tr> 50 <td align="center"><a href="https://beatgig.com/"><img src="https://avatars.githubusercontent.com/u/51333382?s=200&v=4" width="100" alt="BeatGig"/><br />BeatGig</a></td> 51 </tr> 52</table> 53 54## 🙌 Contributing 55 56**The urql project was founded by [Formidable](https://formidable.com/) and is actively developed 57by the urql GraphQL team.** 58 59If you'd like to get involved, [check out our Contributor's guide.](https://github.com/urql-graphql/urql/blob/main/CONTRIBUTING.md) 60 61## 📦 [Releases](https://github.com/urql-graphql/urql/releases) 62 63All new releases and updates are listed on GitHub with full changelogs. Each package in this 64repository further contains an independent `CHANGELOG.md` file with the historical changelog, for 65instance, [here’s `@urql/core`’s 66changelog](https://github.com/urql-graphql/urql/blob/main/packages/core/CHANGELOG.md). 67 68If you’re upgrading to v4, [check out our migration guide, posted as an 69issue.](https://github.com/urql-graphql/urql/issues/3114) 70 71New releases are prepared using 72[changesets](https://github.com/urql-graphql/urql/blob/main/CONTRIBUTING.md#how-do-i-document-a-change-for-the-changelog), 73which are changelog entries added to each PR, and we have “Version Packages” PRs that once merged 74will release new versions of `urql` packages. You can use `@canary` releases from `npm` if you’d 75like to get a preview of the merged changes. 76 77## 📃 [Documentation](https://urql.dev/goto/docs) 78 79The documentation contains everything you need to know about `urql`, and contains several sections in order of importance 80when you first get started: 81 82- **[Basics](https://formidable.com/open-source/urql/docs/basics/)** — contains the ["Getting Started" guide](https://formidable.com/open-source/urql/docs/#where-to-start) and all you need to know when first using `urql`. 83- **[Architecture](https://formidable.com/open-source/urql/docs/architecture/)** — explains how `urql` functions and is built. 84- **[Advanced](https://formidable.com/open-source/urql/docs/advanced/)** — covers more uncommon use-cases and things you don't immediately need when getting started. 85- **[Graphcache](https://formidable.com/open-source/urql/docs/graphcache/)** — documents ["Normalized Caching" support](https://formidable.com/open-source/urql/docs/graphcache/normalized-caching/) which enables more complex apps and use-cases. 86- **[API](https://formidable.com/open-source/urql/docs/api/)** — the API documentation for each individual package. 87 88Furthermore, all APIs and packages are self-documented using TSDocs. If you’re using a language 89server for TypeScript, the documentation for each API should pop up in your editor when hovering 90`urql`’s code and APIs. 91 92_You can find the raw markdown files inside this repository's `docs` folder._ 93 94<img width="100%" src="docs/assets/urql-spoiler.png" />