Latest 0.9.0
License MIT
Platforms ios 8.0, tvos 9.0

Carthage compatible
Build Status

Note that Chester is work in progress and it’s functionality is still very limited.


Chester uses the builder pattern to construct GraphQL queries. In its basic form use it like this:

import Chester

let query = QueryBuilder()
  .with(arguments: Argument(key: "id", value: "20"), Argument(key: "author", value: "Chester"))
  .with(fields: "id", "title", "content")

// For cases with dynamic input, probably best to use a do-catch:

do {
  let queryString = try
} catch {
  // Can specify which errors to catch

// Or if you're sure of your query

guard let queryString = try? else { return }

You can add subqueries. Add as many as needed. You can nest them as well.

let commentsQuery = QueryBuilder()
  .with(fields: "id", content)
let postsQuery = QueryBuilder()
  .with(fields: "id", "title")
  .with(subQuery: commentsQuery)

You can search on multiple collections at once

let search = QueryBuilder()
  .with(arguments: Argument(key: "text", value: "an"))
  .on("Human", "Droid")
  .with(fields: "name")

Check the included unit tests for further examples.


  • Swift 5
  • Xcode 10.2+
  • iOS 8


Chester is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod "Chester"

Or Carthage. Add Chester to your Cartfile:

github "JanGorman/Chester"


Jan Gorman


Chester is available under the MIT license. See the LICENSE file for more info.

Latest podspec

    "name": "Chester",
    "version": "0.9.0",
    "summary": "Chester is a Swift GraphQL query builder.",
    "description": "Work in progress: Simplify building GraphQL queries with Chester.",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "Jan Gorman": "[email protected]"
    "social_media_url": "",
    "platforms": {
        "ios": "8.0",
        "tvos": "9.0"
    "swift_versions": "5.0",
    "source": {
        "git": "",
        "tag": "0.9.0"
    "source_files": [

Pin It on Pinterest

Share This