tailcallhq/tailcall
{ "createdAt": "2023-01-06T10:38:37Z", "defaultBranch": "main", "description": "High Performance GraphQL Runtime", "fullName": "tailcallhq/tailcall", "homepage": "https://tailcall.run", "language": "Rust", "name": "tailcall", "pushedAt": "2025-11-25T22:03:54Z", "stargazersCount": 1417, "topics": [ "api-gateway", "backend-for-frontend", "battle-tested", "cloud-native", "extendable", "graphql", "graphql-api", "graphql-server", "io-efficiency", "microservices", "open-source", "orchestration", "performance", "protocol-agnostic", "proxy", "resiliency", "runtime-tuning", "seamless-devx", "security" ], "updatedAt": "2025-11-15T13:02:53Z", "url": "https://github.com/tailcallhq/tailcall"}Tailcall is an open-source solution for building [high-performance] GraphQL backends.
Please support us by giving the repository a star

[high-performance] !: https://github.com/tailcallhq/graphql-benchmarks
Installation
Section titled “Installation”npm i -g @tailcallhq/tailcallyarn global add @tailcallhq/tailcallHome Brew
Section titled “Home Brew”brew tap tailcallhq/tailcallbrew install tailcallcurl -sSL https://raw.githubusercontent.com/tailcallhq/tailcall/master/install.sh | bashDocker
Section titled “Docker”docker pull ghcr.io/tailcallhq/tailcall/tc-serverdocker run -p 8080:8080 -p 8081:8081 ghcr.io/tailcallhq/tailcall/tc-serverGet Started
Section titled “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!
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.
[docs] !: https://tailcall.run/docs
Benchmarks
Section titled “Benchmarks”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.
Contributing
Section titled “Contributing”Your contributions are invaluable! Kindly go through our [contribution guidelines] if you are a first time contributor.
[contribution guidelines] !: https://tailcall.run/docs/contribution-guidelines
Support Us
Section titled “Support Us”⭐️ Give us a star.
👀 Watch us for updates.
License
Section titled “License”This initiative is protected under the Apache 2.0 License.