GitPedia

Tailcall

High Performance GraphQL Runtime

From tailcallhq·Updated June 12, 2026·View on GitHub·

Tailcall is an open-source solution for building [high-performance] GraphQL backends. The project is written primarily in Rust, distributed under the Apache License 2.0 license, first published in 2023. It has gained significant community traction with 1,440 stars and 256 forks on GitHub. Key topics include: api-gateway, backend-for-frontend, battle-tested, cloud-native, extendable.

Latest release: v1.6.14
January 22, 2026View Changelog →

Tailcall Logo

Tailcall is an open-source solution for building high-performance GraphQL backends.

Please support us by giving the repository a star
image

Tweet
Discord

Open Bounties
Rewarded Bounties
GitHub Workflow Status (with event)
GitHub release (by tag)
Discord
Codecov

Installation

NPM

bash
npm i -g @tailcallhq/tailcall

Yarn

bash
yarn global add @tailcallhq/tailcall

Home Brew

bash
brew tap tailcallhq/tailcall brew install tailcall

Curl

bash
curl -sSL https://raw.githubusercontent.com/tailcallhq/tailcall/master/install.sh | bash

Docker

bash
docker pull ghcr.io/tailcallhq/tailcall/tc-server docker run -p 8080:8080 -p 8081:8081 ghcr.io/tailcallhq/tailcall/tc-server

Get Started

The 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!

graphql
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.

bash
tailcall start ./jsonplaceholder.graphql

Head out to docs to learn about other powerful tailcall features.

Benchmarks

Throughput comparison of various GraphQL solutions for a N + 1 query:

graphql
query { posts { title body user { name } } }

Throughput Histogram

Check out detailed benchmarks on our benchmarking repository.

Contributing

Your contributions are invaluable! Kindly go through our contribution guidelines if you are a first time contributor.

Support Us

⭐️ Give us a star.

👀 Watch us for updates.

License

This initiative is protected under the Apache 2.0 License.

<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=82cc2ee2-ff41-4844-9ae6-c9face103e81" />

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from tailcallhq/tailcall via the GitHub API.Last fetched: 6/20/2026