/houdini

The "disappearing" GraphQL client for the Svelte ecosystem. http://www.houdinigraphql.com

Primary LanguageTypeScriptMIT LicenseMIT

houdini

The disappearing GraphQL client for SvelteKit.

<script>
    // src/routes/items/+page.svelte
    import { graphql } from '$houdini'

    const AllItems = graphql`
        query AllItems {
            items {
                text
            }
        }
    `
</script>

{#each $AllItems.data.items as item}
    <div>{item.text}</div>
{/each}

✨  Features

  • Composable and colocated data requirements for your components
  • Normalized cache with declarative updates
  • Generated types
  • Subscriptions
  • Support for SvelteKit
  • Pagination (cursors and offsets)

At its core, houdini seeks to enable a high quality developer experience without compromising bundle size. Like Svelte, houdini shifts what is traditionally handled by a bloated runtime into a compile step that allows for the generation of an incredibly lean GraphQL abstraction for your application.

🕹  Example

For a detailed example, you can check out the todo list in the example directory or the final version of the Pokédex application from the Getting Started guide.

📚  Documentation

For documentation, please visit the api reference on the website.

🚀  Getting Started

For an in-depth guide to getting started with Houdini, check out the guide on the our website.

✏️  Contributing

If you are interested in helping out, the contributing guide should provide some guidance. If you need something more specific, feel free to reach out to @AlecAivazis on the Svelte discord. There's lots to help with regardless of how deep you want to dive or how much time you can spend 🙂