Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. GraphQL
  3. graphql-java-extended-scalars

graphql-java-extended-scalars

MITJavav24.0

A library providing extended custom scalar types for GraphQL Java implementations, including date/time, numeric ranges, and specialized formats.

GitHubGitHub
287 stars62 forks0 contributors

What is graphql-java-extended-scalars?

GraphQL Java Extended Scalars is a library that provides a collection of custom scalar types for use with GraphQL Java implementations. It extends the basic GraphQL type system with specialized scalars for dates, times, numeric ranges, identifiers, and various standardized formats, allowing developers to create more expressive and semantically meaningful GraphQL schemas.

Target Audience

Java developers building GraphQL APIs who need more specific data types than the basic GraphQL scalars provide, particularly those working with financial data, internationalization, or complex validation requirements.

Value Proposition

Developers choose this library because it provides a comprehensive, well-tested set of custom scalars that follow GraphQL and industry standards, reducing the need to implement these common scalar types from scratch while ensuring consistency and interoperability.

Overview

A library of extended scalars for graphql-java

Use Cases

Best For

  • Adding date and time handling with proper RFC-3339 compliance to GraphQL APIs
  • Enforcing numeric value constraints like positive integers or non-negative floats in schemas
  • Implementing standardized formats like UUID, ISO country codes, or currency codes
  • Creating semantically named scalar aliases for better schema documentation
  • Handling Java-specific numeric types like BigDecimal and BigInteger in GraphQL
  • Building custom validated scalars using regular expression patterns

Not Ideal For

  • Projects using non-Java GraphQL implementations like Apollo Server or Hasura
  • Teams that prefer lightweight, custom scalar implementations for only a few specific types
  • APIs with highly dynamic or schema-less data that might overuse the Object/JSON scalars
  • Environments where minimizing dependencies is critical to avoid library overhead

Pros & Cons

Pros

Comprehensive Scalar Set

Offers a wide range of pre-built scalars for dates, numeric ranges, IDs, and standard formats like ISO country codes, reducing the need for custom implementations.

Standards Compliance

Scalars such as DateTime and CountryCode adhere to RFC-3339 and ISO standards, ensuring interoperability and clear semantics in APIs.

Java Type Integration

Maps directly to Java types like java.time.OffsetDateTime and java.util.UUID, simplifying backend data handling and validation.

Flexible Customization

Provides a builder pattern for regex-based scalars and alias scalars, allowing developers to create tailored validations and semantic names.

Cons

Version Dependency Complexity

Requires precise version matching with graphql-java, as highlighted in the installation notes, which can lead to integration challenges during upgrades.

Schema Complexity Risk

Encouraging extensive use of custom scalars might result in overly complex schemas that are harder to maintain and understand over time.

Ecosystem Lock-in

Tied specifically to graphql-java, making it unsuitable for projects using other GraphQL server implementations or polyglot environments.

Frequently Asked Questions

Quick Stats

Stars287
Forks62
Contributors0
Open Issues0
Last commit25 days ago
CreatedSince 2018

Tags

#java-library#type-system#graphql#schema-definition#api-development#data-validation#graphql-java

Built With

J
Java

Included in

GraphQL15.0k
Auto-fetched 18 hours ago

Related Projects

graphql-java-datetimegraphql-java-datetime

GraphQL ISO Date is a set of RFC 3339 compliant date/time scalar types to be used with graphql-java.

Stars153
Forks25
Last commit4 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub