# 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.
- Optimistic UI (opens new window) - Use a predicted response in templates until the actual response is received.
- Connection support (opens new window) - Support paginators of type "connection".
- Deferred fields (opens new window) - Gradually load data based on priority