Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@tailcallhq/core-darwin-arm64) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Tailcall is an open-source solution for building high-performance GraphQL backends.
Please support us by giving the repository a star
Installation
NPM
npm i -g @tailcallhq/tailcall
Yarn
yarn global add @tailcallhq/tailcall
Home Brew
brew tap tailcallhq/tailcall
brew install tailcall
Curl
curl -sSL https://raw.githubusercontent.com/tailcallhq/tailcall/master/install.sh | bash
Docker
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!
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.graphql
Head out to docs to learn about other powerful tailcall features.
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
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.
