パッケージの詳細

pgl

graphile390MIT5.0.0-beta.43

Automatic, high performance, and highly customizable GraphQL API for PostgreSQL

graphile, graphql, engine, postgraphile

readme

🔮 Graphile's Crystal Monorepo

GitHub Sponsors Patreon sponsor button Discord chat room Follow

At Graphile we love GraphQL so much we named ourself for our love of it! This repository houses many of the Graphile packages that relate to GraphQL (or relate to the packages that relate to GraphQL, or relate to those package...); the two headline projects are Grafast and PostGraphile but there's many other packages, a fair few of which can be used independently - see below for more details.

Grafast: A cutting-edge planning and execution engine for GraphQL.js ─ use this as a drop-in replacement for the execute method from GraphQL.js and by moving from traditional resolvers to Grafast "plan resolvers" you'll be able to leverage the declarative nature of GraphQL requests to execute your business logic in the most efficient way, leading to reduced server load and happier customers. Use this if you're building your own GraphQL schemas and want the best performance and efficiency without having to put much extra effort in.

PostGraphile: An incredibly low-effort way to build a well structured and high-performance GraphQL API backed primarily by a PostgreSQL database. Our main focusses are performance, automatic best-practices and customisability/extensibility. Use this if you have a PostgreSQL database and you want to use it as the "source of truth" for an auto-generated GraphQL API (which you can still make significant changes to). NOTE: thanks to graphile-export you can also use this as a starting point for an API that you then manage yourself.

➡️ For PostGraphile V4 see the legacy branch

Project summaries

Here's a rough breakdown of the main packages:

  • grafast - standalone cutting-edge planning and execution engine for GraphQL; see above for full description.
  • graphile-export - a package that can (under the right circumstances) export an in-memory dynamically-constructed GraphQL schema to raw JavaScript source code that can be imported and executed
  • jest-serializer-graphql-schema - a simple Jest serializer that understands GraphQL schemas and thus does not fill snapshots with \"\"\" etc.
  • graphile-config - a module that handles the plugins, presets and configuration files for Graphile software - a universal configuration layer.
  • graphile-build - a system for building a GraphQL.js schema from "plugins", particularly useful for auto-generated GraphQL APIs (e.g. PostGraphile uses this) but also useful for hand-rolled schemas that have a lot of modular but widely-used concerns such as connections, naming, etc.
    • graphile-build-pg - plugins for graphile-build that understand @dataplan/pg (i.e. PostgreSQL) services and can generate types, relations, mutations, etc for these database resources.
  • @graphile/lru - an obsessively performant least-recently-used cache (possibly the fastest general purpose LRU cache in Node.js) with a ridiculously tiny feature set; you almost certainly want @isaacs' lru-cache instead of this.
  • pg-sql2 - a library for building highly dynamic SQL-injection-proof PostgreSQL queries using tagged template literals.
  • pg-introspection - a strongly typed introspection library for PostgreSQL, generated from the PostgreSQL documentation to provide up-to-date details of each introspection field.
  • postgraphile - pulls most of the above technologies together; see above for full description.

Crowd-funded open-source software

To help us develop this software sustainably, we ask all individuals and businesses that use it to help support its ongoing maintenance and development via sponsorship.

Click here to find out more about sponsors and sponsorship.

And please give some love to our featured sponsors 🤩:

The Guild
The Guild
Steelhead
Steelhead

* Sponsors the entire Graphile suite

Why the "crystal" monorepo?

Originally what is now Grafast (and was previously DataPlanner) was known by the codename "Graphile Crystal." This lead us to use the 🔮 emoji to represent the project in secret before we announced it publicly, as a codeword for those in the know. Now that Grafast is the name for our planning and execution engine and we needed a name for the monorepo that wasn't too GraphQL specific (since there are things in here that aren't strictly related to GraphQL) and we figured that calling it the Crystal monorepo would honour our original nickname for the project. Rumours that the name was inspired by the maintainers' crystal wedding anniversary are greatly exaggerated.

更新履歴

pgl

5.0.0-beta.43

Patch Changes

  • #2577 0c6b1f1 Thanks @benjie! - Update dependencies

  • Updated dependencies [0c6b1f1, 1f4544d, e0cdabe, faee38b]:

    • graphile-build-pg@5.0.0-beta.41
    • graphile-build@5.0.0-beta.35
    • postgraphile@5.0.0-beta.43
    • graphile-config@0.0.1-beta.17
    • @dataplan/pg@0.0.1-beta.34
    • grafserv@0.1.1-beta.26
    • grafast@0.1.1-beta.23
    • @dataplan/json@0.0.1-beta.32

5.0.0-beta.42

Patch Changes

5.0.0-beta.41

Patch Changes

5.0.0-beta.40

Patch Changes

  • Updated dependencies []:
    • grafserv@0.1.1-beta.24
    • graphile-build-pg@5.0.0-beta.38
    • @dataplan/pg@0.0.1-beta.32
    • postgraphile@5.0.0-beta.40

5.0.0-beta.39

Patch Changes

5.0.0-beta.38

Patch Changes

  • Updated dependencies [fc9d64eb8, a2dbad945, 31078842a, 5a0ec31de]:
    • @dataplan/pg@0.0.1-beta.31
    • grafast@0.1.1-beta.20
    • graphile-build-pg@5.0.0-beta.37
    • postgraphile@5.0.0-beta.38
    • @dataplan/json@0.0.1-beta.29
    • grafserv@0.1.1-beta.22
    • graphile-build@5.0.0-beta.32

5.0.0-beta.37

Patch Changes

  • Updated dependencies [83c546509]:
    • graphile-config@0.0.1-beta.14
    • @dataplan/pg@0.0.1-beta.30
    • grafast@0.1.1-beta.19
    • grafserv@0.1.1-beta.21
    • graphile-build@5.0.0-beta.31
    • graphile-build-pg@5.0.0-beta.36
    • postgraphile@5.0.0-beta.37
    • @dataplan/json@0.0.1-beta.28

5.0.0-beta.36

Patch Changes

  • Updated dependencies [7580bc16a, b336a5829]:
    • graphile-config@0.0.1-beta.13
    • postgraphile@5.0.0-beta.36
    • @dataplan/pg@0.0.1-beta.29
    • grafast@0.1.1-beta.18
    • grafserv@0.1.1-beta.20
    • graphile-build@5.0.0-beta.30
    • graphile-build-pg@5.0.0-beta.35
    • @dataplan/json@0.0.1-beta.27

5.0.0-beta.35

Patch Changes

  • Updated dependencies [bee1db4f4]:
    • graphile-build-pg@5.0.0-beta.34
    • postgraphile@5.0.0-beta.35

5.0.0-beta.34

Patch Changes

5.0.0-beta.33

Patch Changes

  • #2224 fba24f91f Thanks @benjie! - Update README to reference postgres:/// protocol

  • Updated dependencies [87bdf9730, 5626c7d36, bf2a2e72a, 76c7340b7, aa480f6a3]:

    • graphile-build-pg@5.0.0-beta.32
    • postgraphile@5.0.0-beta.33
    • graphile-config@0.0.1-beta.11
    • grafserv@0.1.1-beta.18
    • grafast@0.1.1-beta.16
    • @dataplan/pg@0.0.1-beta.27
    • graphile-build@5.0.0-beta.28
    • @dataplan/json@0.0.1-beta.25

5.0.0-beta.32

Patch Changes

  • Updated dependencies [632691409]:
    • graphile-build-pg@5.0.0-beta.31
    • graphile-build@5.0.0-beta.27
    • postgraphile@5.0.0-beta.32

5.0.0-beta.31

Patch Changes

  • Updated dependencies [0b1f7b577]:
    • graphile-build-pg@5.0.0-beta.30
    • graphile-build@5.0.0-beta.26
    • postgraphile@5.0.0-beta.31

5.0.0-beta.30

Patch Changes

5.0.0-beta.29

Patch Changes

5.0.0-beta.28

Patch Changes

  • Updated dependencies [807650035]:
    • @dataplan/pg@0.0.1-beta.24
    • grafast@0.1.1-beta.13
    • graphile-build-pg@5.0.0-beta.27
    • postgraphile@5.0.0-beta.28
    • @dataplan/json@0.0.1-beta.22
    • grafserv@0.1.1-beta.15
    • graphile-build@5.0.0-beta.23

5.0.0-beta.27

Patch Changes

5.0.0-beta.26

Patch Changes

  • Updated dependencies [582bd768f]:
    • graphile-build@5.0.0-beta.21
    • postgraphile@5.0.0-beta.26
    • graphile-config@0.0.1-beta.9
    • @dataplan/pg@0.0.1-beta.22
    • grafserv@0.1.1-beta.13
    • grafast@0.1.1-beta.11
    • graphile-build-pg@5.0.0-beta.25
    • @dataplan/json@0.0.1-beta.20

5.0.0-beta.25

Patch Changes

  • Updated dependencies [3c161f7e1, a674a9923, b7cfeffd1]:
    • grafast@0.1.1-beta.10
    • @dataplan/json@0.0.1-beta.19
    • @dataplan/pg@0.0.1-beta.21
    • grafserv@0.1.1-beta.12
    • graphile-build@5.0.0-beta.20
    • graphile-build-pg@5.0.0-beta.24
    • postgraphile@5.0.0-beta.25

5.0.0-beta.24

Patch Changes

  • Updated dependencies [437570f97]:
    • graphile-build-pg@5.0.0-beta.23
    • postgraphile@5.0.0-beta.24
    • grafast@0.1.1-beta.9
    • @dataplan/json@0.0.1-beta.18
    • @dataplan/pg@0.0.1-beta.20
    • grafserv@0.1.1-beta.11
    • graphile-build@5.0.0-beta.19

5.0.0-beta.23

Patch Changes

  • Updated dependencies [1842af661, bd5a908a4]:
    • graphile-build-pg@5.0.0-beta.22
    • graphile-build@5.0.0-beta.18
    • postgraphile@5.0.0-beta.23
    • grafast@0.1.1-beta.8
    • @dataplan/json@0.0.1-beta.17
    • @dataplan/pg@0.0.1-beta.19
    • grafserv@0.1.1-beta.10

5.0.0-beta.22

Patch Changes

5.0.0-beta.21

Patch Changes

  • Updated dependencies [9f85c614d, 6c6be29f1, 6c80c44b7, 179d25b09, 8315e8d01, 9d53dde72, 46d8289b4]:
    • @dataplan/pg@0.0.1-beta.17
    • grafast@0.1.1-beta.6
    • graphile-build-pg@5.0.0-beta.20
    • graphile-build@5.0.0-beta.16
    • postgraphile@5.0.0-beta.21
    • tamedevil@0.0.0-beta.6
    • pg-introspection@0.0.1-beta.7
    • @dataplan/json@0.0.1-beta.15
    • grafserv@0.1.1-beta.8

5.0.0-beta.20

Patch Changes

5.0.0-beta.19

Patch Changes

5.0.0-beta.18

Patch Changes

  • Updated dependencies [0df5511ac, 7851d89ab, 470ee4000]:
    • graphile-config@0.0.1-beta.6
    • postgraphile@5.0.0-beta.18
    • pg-introspection@0.0.1-beta.5
    • @dataplan/pg@0.0.1-beta.14
    • grafast@0.1.1-beta.3
    • grafserv@0.1.1-beta.5
    • graphile-build@5.0.0-beta.13
    • graphile-build-pg@5.0.0-beta.17
    • @dataplan/json@0.0.1-beta.12

5.0.0-beta.17

Patch Changes

5.0.0-beta.16

Patch Changes

  • Updated dependencies [9696a1b08, 49fcb0d58, 2e7fc6449, 7aef73319]:
    • grafserv@0.1.1-beta.3
    • grafast@0.1.1-beta.1
    • graphile-build-pg@5.0.0-beta.15
    • postgraphile@5.0.0-beta.16
    • graphile-config@0.0.1-beta.4
    • @dataplan/pg@0.0.1-beta.12
    • @dataplan/json@0.0.1-beta.10
    • graphile-build@5.0.0-beta.11

5.0.0-beta.15

Patch Changes

  • Updated dependencies [3dd5d86d6, 2d447a6b4]:
    • postgraphile@5.0.0-beta.15
    • graphile-build-pg@5.0.0-beta.14
    • pg-introspection@0.0.1-beta.4
    • grafserv@0.1.1-beta.2
    • @dataplan/pg@0.0.1-beta.11

5.0.0-beta.14

Patch Changes

5.0.0-beta.13

Patch Changes

  • Updated dependencies [2805edc68]:
    • pg-sql2@5.0.0-beta.4
    • @dataplan/pg@0.0.1-beta.10
    • grafast@0.1.1-beta.0
    • graphile-build-pg@5.0.0-beta.12
    • postgraphile@5.0.0-beta.13

5.0.0-beta.12

Patch Changes

5.0.0-beta.11

Patch Changes

  • #514 c9848f693 Thanks @benjie! - Update package.json repository information

  • Updated dependencies [c9848f693, ede1092fe, 566983fbd, 409bf6071]:

    • graphile-build-pg@5.0.0-beta.10
    • graphile-build@5.0.0-beta.9
    • postgraphile@5.0.0-beta.11
    • pg-introspection@0.0.1-beta.3
    • @dataplan/json@0.0.1-beta.8
    • graphile-config@0.0.1-beta.3
    • @dataplan/pg@0.0.1-beta.8
    • grafserv@0.0.1-beta.9
    • grafast@0.0.1-beta.8
    • tamedevil@0.0.0-beta.3
    • pg-sql2@5.0.0-beta.3
    • @graphile/lru@5.0.0-beta.3

5.0.0-beta.10

Patch Changes

  • Updated dependencies []:
    • grafserv@0.0.1-beta.8
    • graphile-build-pg@5.0.0-beta.9
    • @dataplan/pg@0.0.1-beta.7
    • postgraphile@5.0.0-beta.10

5.0.0-beta.9

Patch Changes

  • Updated dependencies [3700e204f]:
    • grafast@0.0.1-beta.7
    • @dataplan/json@0.0.1-beta.7
    • @dataplan/pg@0.0.1-beta.7
    • grafserv@0.0.1-beta.7
    • graphile-build@5.0.0-beta.8
    • graphile-build-pg@5.0.0-beta.9
    • postgraphile@5.0.0-beta.9

5.0.0-beta.8

Patch Changes

  • #496 c9bfd9892 Thanks @benjie! - Update dependencies (sometimes through major versions).

  • Updated dependencies [ac092e021, c9bfd9892, e613b476d]:

    • postgraphile@5.0.0-beta.8
    • graphile-build-pg@5.0.0-beta.8
    • graphile-build@5.0.0-beta.7
    • pg-introspection@0.0.1-beta.2
    • @dataplan/json@0.0.1-beta.6
    • graphile-config@0.0.1-beta.2
    • @dataplan/pg@0.0.1-beta.6
    • grafserv@0.0.1-beta.6
    • grafast@0.0.1-beta.6
    • tamedevil@0.0.0-beta.2
    • pg-sql2@5.0.0-beta.2
    • @graphile/lru@5.0.0-beta.2

5.0.0-beta.7

Patch Changes

  • Updated dependencies [95e902f54, 53186213a, e916b7412, 73f1b5218, 109c8ec67]:
    • @dataplan/pg@0.0.1-beta.5
    • grafast@0.0.1-beta.5
    • graphile-build-pg@5.0.0-beta.7
    • postgraphile@5.0.0-beta.7
    • graphile-build@5.0.0-beta.6
    • grafserv@0.0.1-beta.5
    • @dataplan/json@0.0.1-beta.5

5.0.0-beta.6

Patch Changes

5.0.0-beta.5

Patch Changes

  • Updated dependencies [22ecd1e5d]:
    • graphile-build-pg@5.0.0-beta.5
    • postgraphile@5.0.0-beta.5

5.0.0-beta.4

Patch Changes

  • Updated dependencies [196e5c1aa, e75bf57dd]:
    • graphile-build-pg@5.0.0-beta.4
    • graphile-build@5.0.0-beta.4
    • postgraphile@5.0.0-beta.4
    • @dataplan/pg@0.0.1-beta.3

5.0.0-beta.3

Patch Changes

  • Updated dependencies [46cd08aa1, d3ab4e12d]:
    • grafast@0.0.1-beta.3
    • graphile-build-pg@5.0.0-beta.3
    • graphile-build@5.0.0-beta.3
    • @dataplan/pg@0.0.1-beta.3
    • @dataplan/json@0.0.1-beta.3
    • grafserv@0.0.1-beta.3
    • postgraphile@5.0.0-beta.3

5.0.0-beta.2

Patch Changes

  • Updated dependencies [23bd3c291]:
    • grafast@0.0.1-beta.2
    • @dataplan/json@0.0.1-beta.2
    • @dataplan/pg@0.0.1-beta.2
    • grafserv@0.0.1-beta.2
    • graphile-build@5.0.0-beta.2
    • graphile-build-pg@5.0.0-beta.2
    • postgraphile@5.0.0-beta.2

5.0.0-beta.1

Patch Changes

  • cbd987385 Thanks @benjie! - Bump all packages to beta

  • Updated dependencies [cbd987385]:

    • @dataplan/json@0.0.1-beta.1
    • @dataplan/pg@0.0.1-beta.1
    • grafast@0.0.1-beta.1
    • grafserv@0.0.1-beta.1
    • graphile-build@5.0.0-beta.1
    • graphile-build-pg@5.0.0-beta.1
    • postgraphile@5.0.0-beta.1
    • graphile-config@0.0.1-beta.1
    • @graphile/lru@5.0.0-beta.1
    • pg-introspection@0.0.1-beta.1
    • pg-sql2@5.0.0-beta.1
    • tamedevil@0.0.0-beta.1

5.0.0-alpha.20

Patch Changes

  • Updated dependencies [dfefdad3c, 6c1c1a34f]:
    • graphile-build-pg@5.0.0-alpha.20
    • postgraphile@5.0.0-alpha.20
    • @dataplan/pg@0.0.1-alpha.17
    • grafast@0.0.1-alpha.16
    • @dataplan/json@0.0.1-alpha.16
    • grafserv@0.0.1-alpha.16
    • graphile-build@5.0.0-alpha.18

5.0.0-alpha.19

Patch Changes

5.0.0-alpha.18

Patch Changes

5.0.0-alpha.17

Patch Changes

  • Updated dependencies [c1518fad0]:
    • graphile-build-pg@5.0.0-alpha.17
    • graphile-build@5.0.0-alpha.16
    • postgraphile@5.0.0-alpha.17

5.0.0-alpha.16

Patch Changes

  • Updated dependencies [d99d666fb]:
    • grafast@0.0.1-alpha.14
    • @dataplan/json@0.0.1-alpha.14
    • @dataplan/pg@0.0.1-alpha.15
    • grafserv@0.0.1-alpha.14
    • graphile-build@5.0.0-alpha.15
    • graphile-build-pg@5.0.0-alpha.16
    • postgraphile@5.0.0-alpha.16

5.0.0-alpha.15

Patch Changes