Tailcall
High Performance GraphQL Runtime
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.
Tailcall is an open-source solution for building high-performance GraphQL backends.
Please support us by giving the repository a star

Installation
NPM
bashnpm i -g @tailcallhq/tailcall
Yarn
bashyarn global add @tailcallhq/tailcall
Home Brew
bashbrew tap tailcallhq/tailcall brew install tailcall
Curl
bashcurl -sSL https://raw.githubusercontent.com/tailcallhq/tailcall/master/install.sh | bash
Docker
bashdocker 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!
graphqlschema @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.
bashtailcall 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:
graphqlquery { posts { title body user { name } } }

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.
