dataloader VS graphql-query-complexity

Compare dataloader vs graphql-query-complexity and see what are their differences.

dataloader

DataLoader is a generic utility to be used as part of your application's data fetching layer to provide a consistent API over various backends and reduce requests to those backends via batching and caching. (by graphql)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
dataloader graphql-query-complexity
47 4
12,626 681
0.5% 0.3%
3.3 0.0
25 days ago 7 months ago
JavaScript TypeScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

dataloader

Posts with mentions or reviews of dataloader. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-16.

graphql-query-complexity

Posts with mentions or reviews of graphql-query-complexity. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-18.
  • Migrating Netflix to GraphQL Safely
    9 projects | news.ycombinator.com | 18 Jun 2023
    https://github.com/slicknode/graphql-query-complexity

    In addition you could introduce CI tools to enforce your devs stop writing such complex queries. Also see the @skip and @include directives that can further be used to control what data is queried. In practice, however, this isn't something that comes up too much. In cases where I have seen this happen, it's usually because a developer is trying to reuse fragments without considering what data they are querying, and whether they should be reusing those fragments.

    https://graphql.org/learn/queries/#fragments

  • GraphQL DoS amount-attack "breadth"
    2 projects | /r/graphql | 11 Jun 2023
    very cool! I was looking at https://github.com/slicknode/graphql-query-complexity
  • Preventing GraphQL batching attacks
    4 projects | dev.to | 7 Feb 2022
    There are a couple of techniques that can be used to prevent this kind of problem one of them is GraphQL Query Complexity Analysis which is, as the name suggests, very complex to implement correctly. It requires analysis of how the graphql API is used, and what queries and mutations are most often called. If you get this wrong, there is a danger of the server denying perfectly valid queries.
  • To GraphQL or not to GraphQL? Pros and Cons
    5 projects | dev.to | 13 Sep 2021
    The problem is that those queries are not prevented by commonly available rate limiters. You can send a single request to a GraphQL server that completely overwhelms the servers. To prevent such queries to GraphQL APIs, I wrote graphql-query-complexity, an extensible open-source library that detects such queries and rejects pathological queries before consuming too many resources on the server. You can assign each field a complexity value, and queries that exceed a threshold will be rejected. In Slicknode this protection is added automatically based on the number of nodes that are being returned.

What are some alternatives?

When comparing dataloader and graphql-query-complexity you can also consider the following projects:

Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.

starter-nextjs-blog - NextJS + Slicknode Headless GraphQL CMS blog starter kit

react-relay - Relay is a JavaScript framework for building data-driven React applications.

crystal - 🔮 Graphile's Crystal Monorepo; home to Grafast, PostGraphile, pg-introspection, pg-sql2 and much more!

Knex - A query builder for PostgreSQL, MySQL, CockroachDB, SQL Server, SQLite3 and Oracle, designed to be flexible, portable, and fun to use.

graphql-no-batched-queries - Graphql validation to disable batched queries and mutations.

jest - Delightful JavaScript Testing.

analysis-ui - Front-end for Conveyal Analysis. Model and analyze transport scenarios.

Sequelize - Feature-rich ORM for modern Node.js and TypeScript, it supports PostgreSQL (with JSON and JSONB support), MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle DB (v6), DB2 and DB2 for IBM i.

falcor - A JavaScript library for efficient data fetching

gRPC - The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

foundation - GraphQL Foundation Charter and Legal Documents