# GraphQL Mesh > GraphQL federation framework that composes GraphQL and non-GraphQL sources (REST, gRPC, SOAP, databases and more) into one supergraph, served by Hive Gateway or any federation-compatible gateway. ## Documentation (Mesh v1) - [Introduction](https://the-guild.dev/graphql/mesh/v1.md): GraphQL Mesh is a framework that allows you to build GraphQL gateways and APIs using GraphQL or non-GraphQL sources - [Getting Started](https://the-guild.dev/graphql/mesh/v1/getting-started.md): GraphQL Mesh Compose allows to compose non GraphQL and GraphQL sources into a supergraph - [Introduction](https://the-guild.dev/graphql/mesh/v1/source-handlers.md): Maximize your GraphQL API capabilities with GraphQL Mesh! Seamlessly consume various data sources like PostgreSQL, MongoDB, Neo4j, and more. - [GraphQL](https://the-guild.dev/graphql/mesh/v1/source-handlers/graphql.md): GraphQL Mesh can load remote GraphQL schemas, fetch from a CDN or registry - [OpenAPI](https://the-guild.dev/graphql/mesh/v1/source-handlers/openapi.md): Load remote or local OpenAPI and Swagger schemas with GraphQL Mesh OpenAPI/ Swagger handler. Migrate from older versions, and override default Query/Mutation operations classification. Accept cookies, headers, and context values with advanced cookie handling. - [gRPC / Protobuf](https://the-guild.dev/graphql/mesh/v1/source-handlers/grpc.md): GraphQL Mesh gRPC Handler allows loading gRPC definition files and using reflection, with custom metadata for authorization. Learn more now! - [JSON Schema](https://the-guild.dev/graphql/mesh/v1/source-handlers/json-schema.md): Control and customize GraphQL schema built from REST service requests/responses using GraphQL Mesh JSON Schema handler. Learn more. - [SOAP](https://the-guild.dev/graphql/mesh/v1/source-handlers/soap.md): Generate executable schema for SOAP services with GraphQL Mesh SOAP handler. Consume WSDL files and get started easily. - [OData](https://the-guild.dev/graphql/mesh/v1/source-handlers/odata.md): Discover how to load remote OData metadata as GraphQL Schema with GraphQL Mesh's OData/Microsoft Graph handler. Get started with a few simple steps! - [Thrift](https://the-guild.dev/graphql/mesh/v1/source-handlers/thrift.md): Easily generate executable schema for Apache Thrift services with GraphQL Mesh Thrift handler.Get started by installing `@graphql-mesh/thrift`. - [SQLite](https://the-guild.dev/graphql/mesh/v1/source-handlers/sqlite.md): Use GraphQL schema created by Tuql for SQLite databases or SQL dump files with GraphQL Mesh Tuql handler. - [MySQL](https://the-guild.dev/graphql/mesh/v1/source-handlers/mysql.md): Generate GraphQL schema from MySQL database with GraphQL Mesh. Learn how to use the MySQL handler and its powerful 'where' field. - [Neo4j](https://the-guild.dev/graphql/mesh/v1/source-handlers/neo4j.md): Use Neo4j with GraphQL using @neo4j/graphql schema. Install @graphql-mesh/neo4j to use it directly in your Mesh config file. Get started now! - [PostgreSQL (soon)](https://the-guild.dev/graphql/mesh/v1/source-handlers/postgres.md): Discover the power of GraphQL Mesh and PostGraphile with our handler library! Use your PostgreSQL database schema to create a GraphQL schema, and add external plugins for federation, many-to-many, and PostGIS support. - [MongoDB (soon)](https://the-guild.dev/graphql/mesh/v1/source-handlers/mongodb.md): Use GraphQL Mesh with Mongoose to simplify your schema creation. - [Introduction](https://the-guild.dev/graphql/mesh/v1/transforms.md): Improve your GraphQL API by using GraphQL Mesh Schema Transformation! Easily modify your schema and control the contents of your requests and responses. Learn how to configure and order transforms for maximum efficiency. - [Prefix](https://the-guild.dev/graphql/mesh/v1/transforms/prefix.md): Add prefixes to GraphQL types and operations using Prefix Transform in GraphQL Mesh. Simplify complicated names, avoid conflicts, and "namespace" APIs easily. Learn how to use it with examples and API reference. - [Rename](https://the-guild.dev/graphql/mesh/v1/transforms/rename.md): The Rename Transform in GraphQL Mesh allows you to rename types, fields, and field arguments, making queries look more like mutations. Learn how to use this transform and its RegEx feature in this guide. - [Naming Convention](https://the-guild.dev/graphql/mesh/v1/transforms/naming-convention.md): Transform the response of your GraphQL API with naming-convention. Apply casing and other conventions to your response with ease. - [Filter Schema](https://the-guild.dev/graphql/mesh/v1/transforms/filter-schema.md): Learn how to filter your GraphQL schema elements with GraphQL Mesh filterSchema transform. Exclude deprecated entities and more! - [Hoist Field](https://the-guild.dev/graphql/mesh/v1/transforms/hoist-field.md): Learn how to use the hoist transform from GraphQL Mesh to lift a field from one object type to a 'parent' root or object type. Explore the HoistField transform and more. - [Encapsulate](https://the-guild.dev/graphql/mesh/v1/transforms/encapsulate.md): Improve your GraphQL schema organization with encapsulate transform. Easily encapsulate a specific schema into a single field with GraphQL Mesh. - [Prune](https://the-guild.dev/graphql/mesh/v1/transforms/prune.md): Easily remove unused and empty types in your GraphQL schema with the prune transform. Learn how to use it and its configuration API reference here. - [Federation Transform](https://the-guild.dev/graphql/mesh/v1/transforms/federation.md): Convert non federation subgraphs to federation subgraphs - [Schema Extensions](https://the-guild.dev/graphql/mesh/v1/schema-extensions.md): Extend your supergraph by combining multiple GraphQL schemas and resolvers with GraphQL Mesh schema extensions. - [Type Merging](https://the-guild.dev/graphql/mesh/v1/type-merging.md): Merge partial definitions of a type from several subgraphs into one unified type with GraphQL Mesh type merging. - [Response Caching](https://the-guild.dev/graphql/mesh/v1/response-caching.md): Response caching is a feature that allows you to cache the responses of your GraphQL Mesh Gateway via @cacheControl directive - [Rate Limit](https://the-guild.dev/graphql/mesh/v1/rate-limit.md): Rate limiting is a feature that allows you to limit the number of requests that can be made to your subgraph using `@rateLimit` - [Error Handling](https://the-guild.dev/graphql/mesh/v1/error-handling.md): Learn how to handle errors in GraphQL Mesh v1, including REST API errors by status code and authentication errors. - [Authentication](https://the-guild.dev/graphql/mesh/v1/auth.md) - [Subscriptions & Webhooks](https://the-guild.dev/graphql/mesh/v1/subscriptions-webhooks.md): Handle Webhooks with GraphQL Subscriptions in your unified schema using GraphQL Mesh. Use PubSub implementation to bind webhook paths to specific topics and consume them as subscription root fields. You can also generate GraphQL type definitions from sample JSON responses using the JSON Schema Handler. - [Consume in Other Gateways](https://the-guild.dev/graphql/mesh/v1/consume-in-other-gateways.md) - [Local Execution & SDK](https://the-guild.dev/graphql/mesh/v1/local-execution.md) - [Migration from Mesh v0](https://the-guild.dev/graphql/mesh/v1/migration-from-v0.md)