{"id":15020080,"url":"https://github.com/the-guild-org/conductor","last_synced_at":"2025-03-22T02:03:36.324Z","repository":{"id":217893172,"uuid":"658664508","full_name":"the-guild-org/conductor","owner":"the-guild-org","description":"Conductor is a cutting-edge, open-source GraphQL Gateway, fully compliant with the GraphQL specification and designed to supercharge any API with powerful features and proxy flows.","archived":false,"fork":false,"pushed_at":"2025-03-07T22:32:25.000Z","size":4479,"stargazers_count":105,"open_issues_count":49,"forks_count":3,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-09T06:26:02.016Z","etag":null,"topics":["federation","fusion","gateway","graphql","proxy","rust"],"latest_commit_sha":null,"homepage":"https://the-guild.dev/graphql/gateway","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/the-guild-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-26T08:48:49.000Z","updated_at":"2025-01-23T13:41:28.000Z","dependencies_parsed_at":"2024-02-03T06:23:57.995Z","dependency_job_id":"6c9a1374-1f69-410e-8dc6-8ea90fe89833","html_url":"https://github.com/the-guild-org/conductor","commit_stats":{"total_commits":476,"total_committers":9,"mean_commits":"52.888888888888886","dds":"0.25630252100840334","last_synced_commit":"152b2f4ad77aac53f4f5ba1f1cf6054534b21211"},"previous_names":["the-guild-org/conductor"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-guild-org%2Fconductor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-guild-org%2Fconductor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-guild-org%2Fconductor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-guild-org%2Fconductor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/the-guild-org","download_url":"https://codeload.github.com/the-guild-org/conductor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244894323,"owners_count":20527677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["federation","fusion","gateway","graphql","proxy","rust"],"created_at":"2024-09-24T19:54:33.771Z","updated_at":"2025-03-22T02:03:36.303Z","avatar_url":"https://github.com/the-guild-org.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GraphQLConf 2024 Banner: September 10-12, San Francisco. Hosted by the GraphQL Foundation](https://github.com/user-attachments/assets/bdb8cd5d-5186-4ece-b06b-b00a499b7868)](https://graphql.org/conf/2024/?utm_source=github\u0026utm_medium=conductor\u0026utm_campaign=readme)\n\n\u003cp align=\"center\"\u003e\n    \u0026nbsp;\u003cbr\u003e\n    \u003cimg src=\".github/images/logo.svg\" alt=\"Conductor\"/\u003e\n    \u003cbr\u003e\u0026nbsp;\n\u003c/p\u003e\n\n\u003e [!IMPORTANT]\n\u003e Conductor gateway is still under development, and currently available as alpha.\n\u003e\n\u003e Please use it with caution. Feedback and Contributions are always welcome!\n\n# Conductor: MIT open-source GraphQL Gateway\n\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/the-guild-org/conductor/.github/workflows/ci.yaml)\n[![unsafe forbidden](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance/)\n![GitHub License](https://img.shields.io/github/license/the-guild-org/conductor)\n\n![GraphQL](https://img.shields.io/badge/-GraphQL-E10098?style=for-the-badge\u0026logo=graphql\u0026logoColor=white)\n![Rust](https://img.shields.io/badge/Rust-000000?style=for-the-badge\u0026logo=rust\u0026logoColor=white)\n![Cloudflare](https://img.shields.io/badge/Cloudflare-F38020?style=for-the-badge\u0026logo=Cloudflare\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n\nConductor is a cutting-edge, open-source GraphQL Gateway, fully compliant with the GraphQL specification and designed to supercharge any GraphQL API with a number of powerful features and proxy flows. Crafted entirely in Rust, it offers unparalleled performance and a great developer experience, making it an ideal choice for projects requiring advanced GraphQL capabilities.\n\n\u003cp align=\"center\"\u003e\n    \u0026nbsp;\u003cbr\u003e\n    \u003cimg src=\".github/images/banner.svg\" alt=\"Conductor\"/\u003e\n    \u003cbr\u003e\u0026nbsp;\n\u003c/p\u003e\n\n## Key Features\n\n- **Built with Rust**: Focused on performance and reliability, leveraging Rust's safety and concurrency capabilities.\n- **Real open-source**: Conductor is open-source (MIT) and free - and will always be.\n- **GraphQL Spec Compliance**: Fully adheres to the GraphQL specification, ensuring reliable and standard-compliant behavior.\n- **Advanced Gateway Capabilities**: Serves as a dynamic proxy between GraphQL consumers and servers, enhancing GraphQL runtime with robust plugins for caching, authentication, rate limiting, CORS, persisted queries (trusted documents), and OpenTelemetry.\n- **Distributed Schemas**: Seamlessly integrates with Apollo Federation, managing all aspects from query planning to response merging.\n- **Extensible Endpoint Configuration**: Allows exposure of multiple GraphQL endpoints from a single instance with configurable plugins per endpoint.\n- **VRL (Vector Routing Language) Support**: Offers limitless possibilities for custom logic, plugins, and response transformers.\n- **Comprehensive Security \u0026 Monitoring**: Built-in support for various authentication methods, authorization, rate limiting, and OpenTelemetry for monitoring.\n- **Flexible runtime**: Conductor runs either as a binary (and dockerized), and can also run on the Edge (CloudFlare Worker).\n\n## Configuration Overview\n\nConductor's configuration can be defined in both YAML and JSON formats. The config file contains several key sections:\n\n- **Server**: Configure the HTTP server settings, including port and host.\n- **Logger**: Set up logging levels for Conductor's operations.\n- **Sources**: Define the GraphQL sources/endpoints that Conductor will interact with. We support both monolith GraphQL and Federation sources.\n- **Endpoints**: Specify the GraphQL endpoints Conductor will expose, including path, source, and plugins.\n- **Plugins**: List global plugins that apply to all endpoints, including CORS, authentication, and more.\n\n### Configuration File Example (YAML)\n\n```yaml\nserver:\n  port: 9000\n\nlogger:\n  filter: error\n\nsources:\n  - type: graphql\n    id: my-source\n    config:\n      endpoint: https://my-source.com/graphql\n\nendpoints:\n  - path: /graphql\n    from: my-source\n    plugins:\n      - type: cors\n        config:\n          allowed_origin: \"*\"\n      - type: graphiql\n```\n\n### Configuration File Example (JSON)\n\n```json\n{\n  \"server\": {\n    \"port\": 9000\n  },\n  \"logger\": {\n    \"filter\": \"error\"\n  },\n  \"sources\": [\n    {\n      \"type\": \"graphql\",\n      \"id\": \"my-source\",\n      \"config\": {\n        \"endpoint\": \"https://my-source.com/graphql\"\n      }\n    }\n  ],\n  \"endpoints\": [\n    {\n      \"path\": \"/graphql\",\n      \"from\": \"my-source\",\n      \"plugins\": [\n        {\n          \"type\": \"cors\",\n          \"config\": {\n            \"allowed_origin\": \"*\"\n          }\n        },\n        {\n          \"type\": \"graphiql\"\n        }\n      ]\n    }\n  ]\n}\n```\n\n## Running Conductor\n\nConductor can be ran via the docker image, and it can even be ran via `npx` for quick and convenient usage. It also fully supports running as a WASM on Cloudflare Workers, providing flexibility in deployment options.\n\n```sh\nnpx @graphql-conductor/bin ./conductor.config.yaml\n```\n\nOr, locally:\n  \n```sh\ncargo run --bin conductor ./conductor.config.json\n```\n\nIf config is not provided as the first argument, Conductor will try to read `config.json` from the root by default. For more details on setting up and running Conductor, [refer to our documentation](https://the-guild.dev/graphql/gateway).\n\n## Contributions\n\nContributions, issues and feature requests are very welcome. If you are using this package and fixed\na bug for yourself, please consider submitting a PR!\n\nAnd if this is your first time contributing to this project, please do read our\n[Contributor Workflow Guide](https://github.com/the-guild-org/Stack/blob/master/CONTRIBUTING.md)\nbefore you get started off.\n\n### Code of Conduct\n\nHelp us keep Conductor open and inclusive. Please read and follow our\n[Code of Conduct](https://github.com/the-guild-org/Stack/blob/master/CODE_OF_CONDUCT.md) as adopted\nfrom [Contributor Covenant](https://www.contributor-covenant.org/)\n\n### License\n\n[![GitHub license](https://img.shields.io/badge/license-MIT-lightgrey.svg?maxAge=2592000)](https://github.com/the-guild-org/conductor/blob/master/LICENSE)\n\nConductor is open-source software licensed under MIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-guild-org%2Fconductor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthe-guild-org%2Fconductor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-guild-org%2Fconductor/lists"}