edgedb
rfcs
Our great sponsors
edgedb | rfcs | |
---|---|---|
19 | 5 | |
12,280 | 34 | |
1.6% | - | |
9.9 | 4.9 | |
about 9 hours ago | 19 days ago | |
Python | Python | |
Apache License 2.0 | Apache License 2.0 |
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.
edgedb
- EdgeDB – A graph-relational database with declarative schema
-
Beyond SQL: A relational database for modern applications
A new DB, with a new query language that's like "SQL done right"? This immediately reminded me of EdgeDB: https://edgedb.com/
Is there anyone here who knows enough about these two products to do a compare/contrast?
-
EdgeDB 3.0
The whole thing consists of these main parts:
1. SQL parser: https://github.com/edgedb/edgedb/tree/master/edb/pgsql/parse...
-
DuckDB 0.8.0
>relational no-sql
Do you mean something like edgeDB?[0]
Or do you mean some non-declarative language completely? I don't see the latter making much sense. The issue with SQL for me is the "natural language" which quickly loses all intended readabilty when you have SELECT col1, col2 FROM (SELECT * FROM ... WHERE 1=0 AND ... which is what edgeDB is trying to solve.
[0]https://edgedb.com/
-
Question about custom properties querying with the query builder
We need to land #3747, then something like this should work
- EdgeDB 2.0
-
GraphQL Is a Trap?
You have to do your own optimiser to avoid, for instance, the N+1 query problem. (Just Google that, plenty of explanations around.) Many GraphQL frameworks have a “naive” subquery implementation that performs N individual subqueries. You either have to override this for each parent/child pairing, or bolt something on the back to delay all the “SELECT * FROM tbl_subquery WHERE id = ?” operations and convert them into one “… WHERE id IN (…)”. Sounds like a great use of your time.
In the end you might think to yourself “why am I doing this, when my SQL database already has query optimisation?”. And it’s a fair question, you are onto it. Try one of those auto-GraphQL things instead. EdgeDB (https://edgedb.com) does it as we speak, runs atop Postgres. Save yourself the enormous effort if you’re only building a GraphQL API for a single RBDMS, and not as a façade for a cluster of microservices and databases and external requests.
Or just nod to your boss and go back to what being a backend developer has always meant: laboriously building by hand completely ad hoc JSON versions of SQL RBDMS schemas, each terribly unhappy in its own way. In no way does doing it manually but presenting GraphQL deviate from this Sisyphean tradition.
I read in the article that NOT having GraphQL exactly match your DB schema is a best practice. My response is “did a backend developer write this?”
-
How we sharded our test suite for 10x faster runs on GitHub Actions
Same idea, yeah. Unfortunately, in our case we couldn't use pytest due to complicated test setup, so we used a customized unittest runner instead.
-
GraphQL is now available on Supabase
EdgeDB [1] has indeed a rich GraphQL layer, but it's a very different project.
While it also builds on top of Postgres, EdgeDB replaces the entire relational database front-end. EdgeDB features a SQL replacement language called EdgeQL (analytical capabilities of SQL married with deep-fetching in GraphQL), a higher-level data model (tables -> object types), integrated migrations engine, a custom protocol with great performance & great client APIs, and many other things. Read more here [2].
(disclaimer: I'm EdgeDB co-founder)
[1] https://github.com/edgedb/edgedb
[2] https://www.edgedb.com/blog/edgedb-1-0
-
EdgeDB 1.0
I'm curious how this squares up with what someone linked elsewhere: https://github.com/edgedb/edgedb/discussions/3403
> EdgeDB does not treat Postgres as a simple standard SQL store. The opposite is true. To realize the full potential of the graph-relational model and EdgeQL efficiently, we must squeeze every last bit of functionality out of PostgreSQL's implementation of SQL and its schema.
This would seem to be an opposing view of how coupled EdgeDB and PostgreSQL are. Which is it?
rfcs
-
Show HN: Starter.place – Gumroad for Starter Repos
Search it is! I could implement search that searches for exact tokens in the tools the author connected and the README, but I want to wait for anything more until EdgeDB releases its full-text search solution https://github.com/edgedb/rfcs/blob/master/text/1015-full-te...
I actually had a feature in mind where people could vote on starters they want and others could build them out and list them for free or a price. Do you think that would fit your needs and is there anything in particular you'd want to see in a feature like that?
-
Show HN: PRQL 0.2 – Releasing a better SQL
Replied on Twitter!
> I see EdgeDB as primarily focused on transactional queries, whereas PRQL is very focused on analytical queries.
That's true to an extent currently, but we actually envisioned EdgeQL to be a capable analytical query language too. We'll release EdgeDB 2.0 in a couple of weeks and it will feature a powerful GROUP BY statement (read more about it here [1]) and in 3.0 we might ship window functions (or some equivalent).
With all that said PRQL looks cool!
[1] https://github.com/edgedb/rfcs/blob/master/text/1009-group.r...
-
EdgeDB 1.0
>> We shall do better than SQL
> The EdgeQL language looks cool, and I'm sure querying via a graph structure makes certain problems easier in some use cases. However as much as people have complained about SQL, it's just so ubiquitous there needs to be a very good reason to switch away from it. Not having to write joins isn't really a good enough reason, in my opinion.
Oh, it goes much deeper than not writing joins. There's no single ORM out there that can implement a TypeScript query builder like ours, see the example in [1]. This is only possible because of EdgeQL composability, but that composability required us to rethink the entire relational foundation.
> > The true source of truth
> I'm not sure why this means EdgeDB is better. <..>
This section implies that EdgeDB's schema allows to specify a lot of meta / dynamically computed information in it. And soon your access control policies. Take a look at the work-in-progress RFC [2] [3] to see how this is more powerful, then say, Postgres' row level security.
> > Not just a database server
> It sounds like they have a solid client, which is awesome.
Also lightweight connections to the DB so that you can have thousands of concurrent ones without load balancers, built-in schema migrations engine, and many other things. In fact we have so much that it's challenging what to even highlight in a blog post like the 1.0 announcement.
> Cloud-ready database APIs
> This used to be true, but is definitely no longer true. Cloud-native databases are everywhere and incredibly common. See any major cloud, https://www.cockroachlabs.com/, or any of the tons of other database solutions.
Not to pick on CockroachDB (they have an amazing product and company, we love them), but you should benchmark local install of Postgres and Cockroach to see yourself that scalability still has a significant cost in performance.
[1] https://www.edgedb.com/blog/edgedb-1-0#not-just-a-database-s...
[2] https://github.com/edgedb/rfcs/pull/49
[3] https://github.com/edgedb/rfcs/pull/50/files
-
Show HN: PRQL – A Proposal for a Better SQL
EdgeQL is getting support for generic partitioning/aggregating `GROUP` very soon [1], so we are giving some love to the analytical side of things too :-)
We definitely need more collective effort put into "Better SQL", so PRQL is a welcome sight!
[1] https://github.com/edgedb/rfcs/blob/21e581a188715c6ff82944b6...
What are some alternatives?
supabase - The open source Firebase alternative.
prql - PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement
cockroach - CockroachDB - the open source, cloud-native distributed SQL database.
partiql-lang-kotlin - PartiQL libraries and tools in Kotlin.
neon - Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, branching, and bottomless storage.
malloy - Malloy is an experimental language for describing data relationships and transformations.
Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
imdbench - IMDBench — Realistic ORM benchmarking
supabase-graphql-example - A HackerNews-like clone built with Supabase and pg_graphql
logica - Logica is a logic programming language that compiles to SQL. It runs on Google BigQuery, PostgreSQL and SQLite.
edgedb-rust - The official Rust binding for EdgeDB
edgedb-java