# chillicream/graphql-platform

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/chillicream-graphql-platform).**

5,712 stars · 807 forks · C# · MIT

## Links

- GitHub: https://github.com/ChilliCream/graphql-platform
- Homepage: https://chillicream.com
- awesome-repositories: https://awesome-repositories.com/repository/chillicream-graphql-platform.md

## Topics

`asp-net` `asp-net-core` `c-sharp` `dataloader` `dotnet` `dotnet-core` `facebook` `graphql` `graphql-client` `graphql-dotnet` `graphql-fusion` `graphql-gateway` `graphql-ide` `graphql-parser` `graphql-server` `graphql-syntax` `greendonut` `hotchocolate` `resolver` `strawberryshake`

## Description

GraphQL Platform is a comprehensive GraphQL ecosystem for .NET that provides a spec-compliant server framework for building APIs and gateways, along with a typed C# client for consuming GraphQL services. At its core, it translates C# classes and methods into a GraphQL schema using code-first or fluent descriptor approaches, enabling developers to define their API structure directly from their existing .NET code.

The platform distinguishes itself through several integrated capabilities that address common GraphQL production concerns. It includes a DataLoader batching and caching engine that groups data fetching requests by key to solve the N+1 problem in resolvers, and a query cost analysis system that assigns weights to fields and rejects operations exceeding a configured performance budget. For security, a persisted operation registry accepts only pre-registered GraphQL operations extracted from client builds, enabling strict control over API usage. The platform also supports schema stitching, allowing multiple independent GraphQL services to be merged into a unified schema exposed through a single endpoint.

Beyond the server, the platform provides a typed C# GraphQL client that generates .NET types from queries and manages local and remote data with a reactive client store that pushes state changes automatically to subscribed components. A middleware GraphQL IDE embeds a Monaco-based exploration tool directly into the server for in-browser API testing and sharing. The documentation covers building GraphQL API servers, generating type-safe clients, composing schemas from microservices, and using the IDE for exploration.

## Tags

### Web Development

- [Spec-Compliant GraphQL Servers](https://awesome-repositories.com/f/web-development/spec-compliant-graphql-servers.md) — Provides a spec-compliant GraphQL server framework for building APIs and gateways in .NET with code-first schema definition.
- [C# GraphQL Client Generators](https://awesome-repositories.com/f/web-development/api-client-generators/type-safe-client-generators/c-graphql-client-generators.md) — Creates .NET types from a GraphQL schema and uses a reactive store with client-side caching for building reactive UIs. ([source](https://cdn.jsdelivr.net/gh/chillicream/graphql-platform@main/README.md))
- [GraphQL Code Generation Frameworks](https://awesome-repositories.com/f/web-development/graphql-client-frameworks/graphql-code-generation-frameworks.md) — Generates typed C# .NET clients from GraphQL queries to remove manual state management for local and remote data.
- [Typed .NET Clients](https://awesome-repositories.com/f/web-development/graphql-clients/typed-net-clients.md) — Generates typed C# .NET clients from GraphQL queries with reactive state management for local and remote data.
- [GraphQL Schema Composition Tools](https://awesome-repositories.com/f/web-development/graphql-schema-composition-tools.md) — Splits an API across independent services and merges them into a single GraphQL endpoint that clients query as one. ([source](https://chillicream.com/docs))
- [Code-First Schema Generators](https://awesome-repositories.com/f/web-development/graphql-schema-generation/code-first-schema-generators.md) — Provides a code-first approach that translates C# classes and attributes into a GraphQL schema at compile time.
- [Schema Stitching Gateways](https://awesome-repositories.com/f/web-development/graphql-schema-management/schema-stitching-gateways.md) — Supports schema stitching, allowing multiple independent GraphQL services to be merged into a unified schema.
- [GraphQL Schema Fluent APIs](https://awesome-repositories.com/f/web-development/api-bridges/browser-api-wrappers/fluent-api-wrappers/type-manipulation-fluent-apis/graphql-schema-fluent-apis.md) — Provides a fluent descriptor API in C# for building GraphQL types and schema structure programmatically.
- [Embedded GraphQL IDEs](https://awesome-repositories.com/f/web-development/graphql-servers/embedded-graphql-ides.md) — Embeds a Monaco-based GraphQL IDE directly into the server middleware for in-browser API exploration.
- [Reactive State Management](https://awesome-repositories.com/f/web-development/reactive-state-management.md) — Pushes state changes automatically to subscribed components without manual polling through a reactive client store. ([source](https://chillicream.com/docs/strawberryshake/))

### Data & Databases

- [DataLoader Batching Engines](https://awesome-repositories.com/f/data-databases/batch-processing/batch-matrix-multiplication-utilities/query-batching/dataloader-batching-engines.md) — Ships a DataLoader batching engine that groups data fetching requests by key to solve the N+1 problem in resolvers.
- [Code-First Schema Builders](https://awesome-repositories.com/f/data-databases/database-schema-introspection-tools/graphql-schema-generators/code-first-schema-builders.md) — Translates C# classes and methods into a GraphQL schema using code-first or fluent descriptor approaches.
- [Code-First Schema Generators](https://awesome-repositories.com/f/data-databases/database-schema-introspection-tools/graphql-schema-generators/code-first-schema-generators.md) — Translates C# classes and methods into a GraphQL schema using code-first or implementation-first approaches. ([source](https://chillicream.com/docs/hotchocolate/))
- [Unified GraphQL Interfaces](https://awesome-repositories.com/f/data-databases/local-remote-state-binding/unified-graphql-interfaces.md) — Provides a unified GraphQL interface to query and mutate both local in-memory state and remote server data. ([source](https://chillicream.com/docs/strawberryshake/))
- [Key-Based](https://awesome-repositories.com/f/data-databases/single-record-retrievers/batch-data-fetchers/key-based.md) — Groups multiple requests for the same data key into a single batch call to reduce redundant database queries. ([source](https://chillicream.com/docs/hotchocolate/fetching-data/dataloader/))
- [GraphQL Query Cost Analyzers](https://awesome-repositories.com/f/data-databases/query-performance-analyzers/graphql-query-cost-analyzers.md) — Assigns weights to fields and rejects operations exceeding a configured performance budget to protect APIs from abuse. ([source](https://chillicream.com/docs))

### Development Tools & Productivity

- [Data Batching and Caching Utilities](https://awesome-repositories.com/f/development-tools-productivity/batching-utilities/data-batching-and-caching-utilities.md) — Ships a DataLoader batching and caching engine that groups data fetching requests by key to solve the N+1 problem. ([source](https://cdn.jsdelivr.net/gh/chillicream/graphql-platform@main/README.md))
- [C# GraphQL Client Generators](https://awesome-repositories.com/f/development-tools-productivity/graphql-api-clients/c-graphql-client-generators.md) — Generates a typed C# .NET client from GraphQL queries to remove manual state management for local and remote data. ([source](https://chillicream.com/docs/strawberryshake/))
- [Interactive API Explorers](https://awesome-repositories.com/f/development-tools-productivity/interactive-api-explorers.md) — Provides a middleware GraphQL IDE for exploring, sharing, and testing any GraphQL API. ([source](https://cdn.jsdelivr.net/gh/chillicream/graphql-platform@main/README.md))
- [GraphQL IDEs](https://awesome-repositories.com/f/development-tools-productivity/web-based-ides/graphql-ides.md) — Embeds a Monaco-based GraphQL IDE directly into the server middleware for in-browser API exploration and testing.

### Artificial Intelligence & ML

- [GraphQL Query Cost Analyzers](https://awesome-repositories.com/f/artificial-intelligence-ml/execution-cost-analysis/graphql-query-cost-analyzers.md) — Assigns weight values to schema fields and rejects operations exceeding a configured execution budget.
- [GraphQL Query Cost Limiters](https://awesome-repositories.com/f/artificial-intelligence-ml/llm-cost-management/subscription-cost-recommendations/api-operational-cost-limits/graphql-query-cost-limiters.md) — Enforces a configured budget by rejecting GraphQL operations whose computed cost exceeds the limit before execution. ([source](https://chillicream.com/docs/hotchocolate/))

### DevOps & Infrastructure

- [GraphQL Query Cost Analyzers](https://awesome-repositories.com/f/devops-infrastructure/resource-cost-management/cost-visualization-dashboards/cost-and-usage-querying/graphql-query-cost-analyzers.md) — Assigns weights to fields and rejects operations exceeding a configured performance budget to protect APIs from abuse.

### Security & Cryptography

- [Persisted Operation Enforcement](https://awesome-repositories.com/f/security-cryptography/authorization-middleware/persisted-operation-enforcement.md) — Implements a persisted operation registry that accepts only pre-registered GraphQL operations for strict API access control.
- [Persisted Operation Registries](https://awesome-repositories.com/f/security-cryptography/domain-access-restrictions/operational-restrictions/persisted-operation-registries.md) — Accepts only pre-registered GraphQL operations extracted from client builds, enabling strict control over API usage. ([source](https://chillicream.com/docs))

### Software Engineering & Architecture

- [Reactive Data Stores](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/reactive-subscription-systems/reactive-data-stores.md) — Provides a reactive client store that pushes state changes automatically to subscribed components.
- [GraphQL Schema Stitching](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation/data-type-validation/object-shape-validation/schema-composition/graphql-schema-stitching.md) — Merges multiple independent GraphQL services into a unified schema exposed through a single endpoint.

### Testing & Quality Assurance

- [Interactive Explorers](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/api-testing/graphql-testing/interactive-explorers.md) — Embeds a Monaco-based GraphQL IDE directly into the server middleware for in-browser API exploration and testing.
