gel README

The project's README from github.com/geldata/gel. As one markdown file: README.md.

Gel

Stars license discord

Learn: build an app with Gel   •   Website   •   Docs   •   Blog   •   Discord   •   Twitter



What is Gel?

Gel is a new kind of database
that takes the best parts of
relational databases, graph
databases, and ORMs. We call it
a graph-relational database.



🧩 Types, not tables 🧩


Schema is the foundation of your application. It should be something you can read, write, and understand.

Forget foreign keys; tabular data modeling is a relic of an older age, and it isn't compatible with modern languages. Instead, Gel thinks about schema the same way you do: as object types containing properties connected by links.

type Person {
  required name: str;
}

type Movie {
  required title: str;
  multi actors: Person;
}

This example is intentionally simple, but Gel supports everything you'd expect from your database: a strict type system, indexes, constraints, computed properties, stored procedures...the list goes on. Plus it gives you some shiny new features too: link properties, schema mixins, and best-in-class JSON support. Read the schema docs for details.


🌳 Objects, not rows 🌳


Gel's super-powered query language EdgeQL is designed as a ground-up redesign of SQL. EdgeQL queries produce rich, structured objects, not flat lists of rows. Deeply fetching related objects is painless...bye, bye, JOINs.

select Movie {
  title,
  actors: {
    name
  }
}
filter .title = "The Matrix"

EdgeQL queries are also composable; you can use one EdgeQL query as an expression inside another. This property makes things like subqueries and nested mutations a breeze.

insert Movie {
  title := "The Matrix Resurrections",
  actors := (
    select Person
    filter .name in {
      'Keanu Reeves',
      'Carrie-Anne Moss',
      'Laurence Fishburne'
    }
  )
}

There's a lot more to EdgeQL: a comprehensive standard library, computed properties, polymorphic queries, with blocks, transactions, and much more. Read the EdgeQL docs for the full picture.


🦋 More than a mapper 🦋


While Gel solves the same problems as ORM libraries, it's so much more. It's a full-fledged database with a powerful and elegant query language, a migrations system, a suite of client libraries in different languages, a command line tool, and a managed cloud service. The goal is to rethink every aspect of how developers model, migrate, manage, and query their database.

Here's a taste-test of Gel's next-level developer experience: you can install our CLI, spin up an instance, and open an interactive EdgeQL shell with just three commands.

$ curl --proto '=https' --tlsv1.2 -sSf https://geldata.com/sh | sh
$ edgedb project init
$ edgedb
edgedb> select "Hello world!"

Windows users: use this Powershell command to install the CLI.

PS> iwr https://geldata.com/ps1 -useb | iex

Get started

To start learning about Gel, check out the following resources:


Contributing

PRs are always welcome! To get started, follow this guide to build Gel from source on your local machine.

File an issue 👉
Start a Discussion 👉
Join the discord 👉


License

The code in this repository is developed and distributed under the Apache 2.0 license. See LICENSE for details.

gel (geldata/gel)

Searching Database…

14.2K ·GitHub
What is this?Gel is a database that builds on Postgres, adding a modern object-based data model, a graph query language called EdgeQL, built-in Auth and AI tooling, and a managed cloud service.
Is this a database server, or just an ORM library on top of Postgres?It is a full database server, not just a client library: it runs its own instance, has its own query language (EdgeQL), a migrations system, client libraries for multiple languages, a CLI, and a managed cloud service.
How do I get a Gel instance running?Install the CLI, then spin up an instance and open an interactive EdgeQL shell with just three commands; Windows users install the CLI via a PowerShell command. The 10-minute quickstart guide is the recommended starting point.
Does it replace SQL/foreign-key modeling, or do I still write SQL?Gel replaces SQL's tabular/foreign-key model with an object-and-link schema queried via EdgeQL instead of SQL, which means the mental model is different from a typical relational setup.
Who is this for — app developers replacing their ORM, or DB admins managing raw Postgres?It targets application developers who currently use ORMs or raw SQL/Postgres and want a schema and query layer closer to how they think about objects in code.
What does EdgeQL give me that plain SQL doesn't?EdgeQL returns rich structured objects instead of flat rows, lets you deeply fetch related objects without JOINs, and allows composing queries as expressions inside other queries, which makes subqueries and nested mutations much simpler.
Does Gel support schema migrations out of the box?Yes, Gel ships with its own migrations system as part of the full database toolchain alongside the CLI and client libraries.
Is there a hosted option so I don't have to self-manage the database?Yes, Gel Cloud is offered as a managed hosting option described as the most effortless way to run a Gel database in the cloud.
Creator
geldata
Size
73.8 MB
Stars
14.2K
Age
9y
Commits · 90 Days