Tailcall is an open-source solution for building high-performance GraphQL backends.
Please support us by giving the repository a star

npm i -g @tailcallhq/tailcallyarn global add @tailcallhq/tailcallbrew tap tailcallhq/tailcall
brew install tailcallcurl -sSL https://raw.githubusercontent.com/tailcallhq/tailcall/master/install.sh | bashdocker pull ghcr.io/tailcallhq/tailcall/tc-server
docker run -p 8080:8080 -p 8081:8081 ghcr.io/tailcallhq/tailcall/tc-serverThe below file is a standard .graphQL file, with a few additions such as @server and @http directives. So, basically, we specify the GraphQL schema and how to resolve that GraphQL schema in the same file, without having to write any code!
schema @server(port: 8000, hostname: "0.0.0.0") @upstream(httpCache: 42) {
  query: Query
}
type Query {
  posts: [Post] @http(url: "http://jsonplaceholder.typicode.com/posts")
  user(id: Int!): User @http(url: "http://jsonplaceholder.typicode.com/users/{{.args.id}}")
}
type User {
  id: Int!
  name: String!
  username: String!
  email: String!
  phone: String
  website: String
}
type Post {
  id: Int!
  userId: Int!
  title: String!
  body: String!
  user: User @http(url: "http://jsonplaceholder.typicode.com/users/{{.value.userId}}")
}Now, run the following command to start the server with the full path to the jsonplaceholder.graphql file that you created above.
tailcall start ./jsonplaceholder.graphqlHead out to docs to learn about other powerful tailcall features.
Throughput comparison of various GraphQL solutions for a N + 1 query:
query {
  posts {
    title
    body
    user {
      name
    }
  }
}Check out detailed benchmarks on our benchmarking repository.
Your contributions are invaluable! Kindly go through our contribution guidelines if you are a first time contributor.
⭐️ Give us a star.
👀 Watch us for updates.
This initiative is protected under the Apache 2.0 License.

