awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
rmosolgo avatar

rmosolgo/graphql-ruby

0
View on GitHub↗
graphql-ruby.org↗

Graphql Ruby

GraphQL-Ruby est une bibliothèque Ruby pour construire des API GraphQL avec un schéma fortement typé et un moteur d'exécution de requêtes dédié. Elle fournit un framework complet pour mapper les objets de l'application à un système de types formel, permettant une récupération de données structurée via des résolveurs définis.

Le projet se distingue par des mécanismes avancés de performance et de livraison, incluant un data loader pour le batching et le cache afin d'éviter les patterns de requêtes N+1. Il supporte la livraison de données haute performance via le streaming de réponses incrémentales, les réponses de requêtes différées et la récupération de données en parallèle utilisant des fibers. De plus, il offre un support natif pour les conventions Relay, incluant des helpers spécialisés pour les connexions et l'identification d'objets.

La bibliothèque couvre une large surface de gestion d'API, incluant un contrôle d'accès granulaire, le versioning de schéma pour maintenir la rétrocompatibilité et des mises à jour en temps réel via des abonnements. Elle inclut également des outils de gestion de trafic pour protéger les ressources serveur, tels que la limitation de complexité des requêtes et le rate limiting.

Le développement et l'observabilité sont supportés par des outils d'analyse AST, le traçage d'exécution et des utilitaires de test spécialisés pour la vérification du chargement par lots.

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Features

  • GraphQL API Implementations - Provides a comprehensive implementation of server-side GraphQL interfaces to serve structured data to clients.
  • Query Execution Engines - Features a dedicated execution engine that evaluates query strings against a schema using defined resolvers.
  • GraphQL Execution Engines - Ships a complete execution engine that parses query strings and evaluates them against a typed schema.
  • Query and Load API Serving - Provides a complete system for serving data via queries, mutations, subscriptions, and streaming responses.
  • Query Complexity Analysis - Prevents resource exhaustion by restricting the depth of nested selections and the total number of fields requested.
  • DataLoader Batching Engines - Provides a DataLoader engine to batch data fetching requests and eliminate N+1 query problems.
  • Mutation Definitions - Creates structured operations that modify server-side data and return a payload of fields to the client.
  • Field Definitions - Declares available data points by specifying return types, nullability, and naming conventions.
  • Type System Mappings - Maps application objects to a formal GraphQL type system to structure how data is requested and returned.
  • GraphQL Mutation Implementations - Implements server-side logic for handling GraphQL mutations that modify data.
  • GraphQL Mutation Management - Validates user permissions at the mutation level or against loaded objects before modifying data.
  • Mutation Authorizations - Validates user roles and permissions at the mutation level or on objects loaded by ID.
  • GraphQL Query Performance Optimizations - Optimizes GraphQL query performance through document caching, execution timeouts, and field complexity analysis.
  • Progressive Response Streaming - Streams parts of a response incrementally so users see initial results before expensive fields resolve.
  • Keyed Batch Loaders - Groups multiple requests for related data by key and dispatches them as a single batched fetch.
  • Method-to-Field Resolvers - Maps GraphQL fields to data by invoking methods on objects or executing custom resolver logic.
  • Access Control Managers - Hides schema elements from specific users and verifies permissions for retrieving or modifying objects.
  • Field-Level Access Controls - Restricts read or write access to specific data fields based on granular user permissions.
  • GraphQL Query Complexity Protection - Limits query depth and complexity to prevent resource exhaustion from malicious or inefficient queries.
  • GraphQL Security - Provides protective measures including complexity analysis, depth limiting, and object-level authorization to secure the API.
  • Data Access Authorizations - Verifies that the current user has permission to access specific retrieved objects during query execution.
  • GraphQL Authorization Frameworks - Implements a permission system specifically designed for field-level and scope-based access control within GraphQL schemas.
  • Result List Filtering - Applies policy-based scopes to lists to ensure users only see records they are permitted to access.
  • Permission-Based List Filtering - Scopes collections of objects to only include items the user is authorized to see.
  • Object Action Authorization - Checks if a user is permitted to perform a specific action on an object before proceeding with the operation.
  • Permission Systems - Integrates with external permission systems to authorize requests based on user identity.
  • Policy-Based Access Control - Enforces security permissions based on defined authorization policies for object roles and field visibility.
  • Resolver Authorizations - Checks user permissions via policy roles before executing the logic within a resolver.
  • Role-Based Access Control - Implements role-based access control to restrict field and argument access based on security policies.
  • Schema Member Authorization - Checks permissions on types and mutations during execution to determine if a user can access specific data.
  • Object Access Restrictions - Implements granular security checks to ensure users can only access authorized object types and fields.
  • Strongly-Typed Query Validation - Validates incoming queries against the GraphQL specification and the defined type system.
  • Object Access Verifications - Checks if a user has permission to access specific application objects during request execution.
  • N+1 Query Prevention - Prevents N+1 query patterns by batching requests for nested models and associations.
  • Query AST Parsers - Parses GraphQL query strings into abstract syntax trees to validate structure and enforce safety rules.
  • Data Loader Batchers - Implements a DataLoader mechanism to batch requests and cache results, eliminating N+1 query patterns.
  • Type Definitions - Describes application objects to establish a strongly-typed schema for API data fetching.
  • Field Argument Specifications - Specifies types, nullability, and default values for inputs that clients must provide to a field.
  • GraphQL Operation Execution - Implements end-to-end processing of GraphQL queries, mutations, and subscriptions.
  • GraphQL Schema Definitions - Offers a framework for mapping internal application objects to a formal, strongly-typed GraphQL schema.
  • Resolver Implementations - Implements the resolution logic and entry points that determine how clients query and retrieve data from the system.
  • Schema Definitions - Describes the application structure through a strongly-typed schema to create a self-documenting API.
  • GraphQL Subscriptions - Implements server-side GraphQL subscriptions to deliver real-time data streams to clients.
  • Real-Time Data Pushing - Delivers real-time asynchronous data updates to subscribed clients using an external pub/sub provider.
  • Resolver Execution Tracing - Integrates with performance tools to trace the full lifecycle of GraphQL resolver executions.
  • Permission-Based Filtering - Filters returned object lists based on user context to ensure only authorized records are retrieved.
  • Execution Tree Batching - Collects multiple data requirements across the execution tree to fetch them in bulk and eliminate redundant requests.
  • Query Result Caching - Stores and retrieves previously computed query results using fingerprints and authorization checks to reduce latency.
  • GraphQL Result Caches - Stores field results associated with specific objects to avoid redundant computations.
  • Schema Versioning - Rolls out schema changes while maintaining compatibility for existing clients to preserve the user experience.
  • Simultaneous Schema Versions - Manages multiple versions of the schema simultaneously to ensure backward compatibility for older clients.
  • Temporal Element Versioning - Introduces or removes schema elements based on version dates to ensure a smooth transition for clients.
  • API Result Set Limits - Caps the number of items returned in lists to prevent excessive database load.
  • Schema Evolution - Tracks evolutionary schema changes through sets of modifications associated with specific version numbers.
  • Mutation Execution Restrictions - Prevents a mutation from running by checking user permissions before loading data.
  • Fingerprint-Based Caches - Stores computed query results associated with unique data signatures to avoid redundant computations.
  • Cursor-Based Pagination - Implements a stable connection pattern for large datasets using pointers to retrieve manageable chunks of records.
  • Deferred Query Responses - Supports deferred query responses that pause execution branches to improve perceived loading performance.
  • Breadth-First - Processes fields across multiple objects in a single batch to reduce memory usage for large nested lists.
  • Incremental List Streaming - Sends list items to the client incrementally as they resolve to enable partial results rendering.
  • Execution Time Limits - Caps the cumulative execution time a client can consume to protect resources from expensive queries.
  • Cumulative Runtime Limits - Caps the cumulative processing time a client can consume within a window to control server load.
  • Query Execution Timeouts - Caps the amount of time a client can spend executing queries to protect server resources.
  • Client Runtime Resource Limiting - Caps the number of concurrent operations or total runtime per client to protect server capacity.
  • Pub-Sub Systems - Connects GraphQL subscription logic to external pub/sub providers for scalable real-time updates.
  • Real-time Data Subscriptions - Manages persistent connections and transport layers to deliver automatic real-time data updates to clients.
  • Input Deprecation Markers - Marks input fields as deprecated to notify clients of upcoming changes without breaking integrations.
  • Compiled Query Parsing - Processes query strings into a structured format using compiled extensions to increase execution speed.
  • API Visibility Controls - Hides specific parts of the API schema based on permissions to prevent unauthorized discovery.
  • Scope-Based Visibility Controls - Applies policy-based scoping to lists and connections to ensure users only retrieve authorized records.
  • Permission-Based Collection Scoping - Filters collections of objects based on authorized access levels to ensure users see only permitted records.
  • Persisted Query Whitelists - Ensures only pre-approved query hashes are executed on the server to prevent arbitrary query execution.
  • Request Rate Limiting - Restricts the number of requests a client can make in a timeframe to protect server resources.
  • Schema Introspection Restrictions - Restricts visibility of types and fields in the API schema to prevent unauthorized discovery via introspection.
  • Subscription Stream Authorization - Restricts access to real-time data streams using token-based authorization to prevent unauthorized listening.
  • Query Complexity Protections - Implements complexity limits and timeouts to protect server resources from expensive GraphQL queries.
  • Schema - Versions the API schema to remove or redefine fields and types without breaking compatibility for older clients.
  • AST Visitor Patterns - Implements the visitor design pattern to programmatically transform or inspect GraphQL abstract syntax trees.
  • Fiber-Based Concurrent Execution - Uses non-blocking fibers to execute independent data fetches concurrently and reduce request latency.
  • Non-blocking I/O - Runs network or database requests concurrently using non-blocking I/O operations to reduce resolution time.
  • Fiber-local State Management - Manages variables and global state isolation for concurrent execution units during data loading.
  • Automated Field Resolution - Automatically wraps arrays in connection objects and manages common pagination arguments.
  • Batch Field Resolution - Implements batch field resolution to minimize input and output overhead during the execution process.
  • GraphQL AST Parsing - Parses GraphQL queries into abstract syntax trees for ahead-of-time structural analysis and transformations.
  • GraphQL Document Transformations - Provides tooling to inspect and programmatically transform GraphQL schema definitions and query documents.
  • Loaded Object Authorizations - Fetches records by ID and verifies user permissions before injecting them into the resolver logic.
  • Parallel Data Loading - Implements parallel data fetching using fibers to reduce total request latency by executing independent data requests concurrently.
  • Parallel Task Execution - Runs external service calls and database queries concurrently using asynchronous tasks to prevent sequential queuing.
  • Pre-execution Query Analysis - Examines queries before execution to identify potential issues and return errors instead of running the operation.
  • Resolved Value Caching - Caches resolved objects within the request lifecycle to avoid redundant database lookups and computations.
  • Version-Based Schema Partitioning - Partitions the schema into versions to maintain backward compatibility for older clients.
  • Business Logic Encapsulations - Encapsulates data fetching and business logic for fields into dedicated classes to maintain clean schema definitions.
  • Concurrent Request Limits - Restricts the number of active requests a client can execute simultaneously to prevent process exhaustion.
  • API Performance Monitoring - Tracks request execution and latency via tracing to integrate with application performance monitoring tools.
  • Field - Hooks into the start and end of individual field resolutions to monitor performance and runtime behavior.
  • Resource Usage Restrictions - Enforces complexity limits and request timeouts to prevent server resource exhaustion from expensive queries.
  • API Versioning Strategies - Manages schema updates to roll out new features while preserving backward compatibility for existing clients.
  • Response Streaming - Delivers data in chunks using a specific response syntax to improve perceived performance.
  • Concurrent Resource Fetching - Triggers multiple independent data requests simultaneously and aggregates the results upon completion.
  • Fingerprint Invalidation - Uses unique fingerprints to automatically expire stale data when underlying records or definitions change.
  • Object-Based Invalidation - Specifies which objects trigger the invalidation of cached values to ensure related records refresh.
  • Dependent Data Fetching - Executes sequential data fetches where subsequent requests rely on previous results without blocking the execution thread.
  • Global Object Identifiers - Automatically converts global identifiers into typed objects before they reach the resolver.
  • Field Argument Handling - Allows fields to receive input parameters used to filter, search, or modify the resolved result.
  • GraphQL Argument Validations - Provides preprocessing functions to modify or validate argument values before resolver execution.
  • GraphQL Input Validations - Checks GraphQL fields and arguments against built-in rules for length and format to ensure data integrity.
  • Custom Input Validators - Defines specialized validation classes to perform complex checks on input values during query execution.
  • GraphQL Schema Management - Provides tools for maintaining and versioning GraphQL schema definitions to ensure backward compatibility.
  • Schema Documentation - Adds descriptions and deprecation notices to schema fields to provide built-in documentation for API consumers.
  • Persisted Queries - GraphQL-Ruby stores query strings on the server and references them by ID to reduce network overhead.
  • Incremental GraphQL Delivery - Implements the GraphQL incremental delivery specification to stream partial results and reduce perceived latency.
  • Persisted Queries - Stores GraphQL query strings on the server and executes them via identifiers to reduce bandwidth.
  • Progressive Response Streaming - Sends critical data immediately and follows up with secondary fields to enable progressive page loading.
  • Relay Specifications - Provides native support for Relay specifications including global object identification and connections.
  • Response Caching - Caches full server responses to avoid redundant computation and database lookups for identical operations.
  • Authorized - Integrates authorization checks and fingerprints into the caching layer to ensure cached data is served only to authorized users.
  • Schema-Integrated Error Types - Defines errors as fields and types within the schema, allowing clients to query them as structured data.
  • Database and Backend - Ruby implementation of the GraphQL specification.
  • GraphQL - Full-featured implementation of GraphQL for Ruby.
  • Ruby GraphQL Tools - Core implementation for building GraphQL APIs in Ruby.
5,448 stars·1,417 forks·Ruby·MIT·8 vues

Historique des stars

Graphique de l'historique des stars pour rmosolgo/graphql-rubyGraphique de l'historique des stars pour rmosolgo/graphql-ruby

Questions fréquentes

Que fait rmosolgo/graphql-ruby ?

GraphQL-Ruby est une bibliothèque Ruby pour construire des API GraphQL avec un schéma fortement typé et un moteur d'exécution de requêtes dédié. Elle fournit un framework complet pour mapper les objets de l'application à un système de types formel, permettant une récupération de données structurée via des résolveurs définis.

Quelles sont les fonctionnalités principales de rmosolgo/graphql-ruby ?

Les fonctionnalités principales de rmosolgo/graphql-ruby sont : GraphQL API Implementations, Query Execution Engines, GraphQL Execution Engines, Query and Load API Serving, Query Complexity Analysis, DataLoader Batching Engines, Mutation Definitions, Field Definitions.

Quelles sont les alternatives open-source à rmosolgo/graphql-ruby ?

Les alternatives open-source à rmosolgo/graphql-ruby incluent : graphql-dotnet/graphql-dotnet — GraphQL.NET is a server-side framework for building and executing GraphQL APIs within C# applications. It provides a… graph-gophers/graphql-go — graphql-go is a schema-first GraphQL library and server implementation for Go. It provides a query execution engine… graphql-rust/juniper — Juniper is a GraphQL server library and schema engine for Rust. It provides a toolkit for building type-safe APIs by… graphql-python/graphene — Graphene is a library and framework for building type-safe GraphQL APIs and schemas using Python objects and… async-graphql/async-graphql — async-graphql is a type-safe framework for building specification-compliant GraphQL servers in Rust. It uses… graphql-python/graphene-django — Graphene-Django is a GraphQL integration framework and schema mapper used to build typed APIs for Django applications.…

Alternatives open source à Graphql Ruby

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Graphql Ruby.
  • graphql-dotnet/graphql-dotnetAvatar de graphql-dotnet

    graphql-dotnet/graphql-dotnet

    5,987Voir sur GitHub↗

    GraphQL.NET is a server-side framework for building and executing GraphQL APIs within C# applications. It provides a comprehensive toolkit for schema building, a federated engine for distributed data graphs, and a subscription handler for managing real-time data streams. The project distinguishes itself with a flexible schema builder that supports both programmatic code-first definitions and declarative schema-first approaches using the standard schema definition language. It includes a dedicated federation engine to split data graphs into subgraphs and compose them into a unified gateway, as

    C#apidotnet-coregraphiql
    Voir sur GitHub↗5,987
  • graph-gophers/graphql-goAvatar de graph-gophers

    graph-gophers/graphql-go

    4,755Voir sur GitHub↗

    graphql-go is a schema-first GraphQL library and server implementation for Go. It provides a query execution engine and schema parser that converts schema definition strings into executable structures and validates resolver signatures. The library also includes a streaming implementation for real-time GraphQL subscriptions using channels within resolvers. The project distinguishes itself through parallel resolver execution to reduce request latency and the use of buffer-pool memory management to lower garbage collection overhead. It enables the creation of cloneable schema instances from a sh

    Go
    Voir sur GitHub↗4,755
  • graphql-rust/juniperAvatar de graphql-rust

    graphql-rust/juniper

    5,963Voir sur GitHub↗

    Juniper is a GraphQL server library and schema engine for Rust. It provides a toolkit for building type-safe APIs by mapping native Rust data structures to GraphQL objects, inputs, and scalars. The project functions as an execution engine that can process queries and mutations either through a network server or as a headless engine for local execution. The library is runtime-agnostic, allowing it to bridge GraphQL processing with various asynchronous Rust web frameworks. It includes a subscription framework that manages persistent WebSocket connections to push real-time data updates to client

    Rust
    Voir sur GitHub↗5,963
  • graphql-python/grapheneAvatar de graphql-python

    graphql-python/graphene

    8,238Voir sur GitHub↗

    Graphene is a library and framework for building type-safe GraphQL APIs and schemas using Python objects and resolvers. It provides a system for mapping internal data models to typed GraphQL schemas, enabling the creation of servers that process queries and execute resolvers to return structured data. The project includes a full implementation of the Relay specification, providing standardized patterns for global object identification and cursor-based pagination. It utilizes a class-based approach to schema definition and supports interface-based type inheritance. The framework covers a broa

    Python
    Voir sur GitHub↗8,238
Voir les 30 alternatives à Graphql Ruby→