# Features

Buoy is based on the Fairway-spec (opens new window), which is a naming convention for GraphQL schemas. If your GraphQL schema conforms to the specification, it should be relatively easy to use the Buoy client.

By conforming to the specification, the following features should work out of the box.

# Pagination

Buoy handles pagination out-of-the-box. With full Lighthouse (opens new window)-pagination support, simply add pagination to your Query options.

# Router R/W

When working with paginators, it easily gets tedious to handle URL-changes / subscriptions to reflect the current page and limit. Router R/W automates everything.

# File uploads

Uploading files with GraphQL has never been easier. Simply add the files as variables to your mutations, and let Buoy take care of the rest!

# Middleware

With Middleware, you can change queries, variables, headers and responses.

# Caching

Buoy utilizes InMemoryCache which is automatically used unless you instruct Buoy otherwise.

# Roadmap

Following features are planned or in the works. Click the links to follow their progress.