Hasura vs PostGraphile vs WunderGraph Cosmo
Hasura and PostGraphile both turn a database into a GraphQL API: Hasura with a Haskell (V2) and Rust (V3/DDN) engine and pluggable data connectors, PostGraphile by compiling a PostgreSQL schema through the Grafast planner in Node.js. WunderGraph Cosmo solves a different problem: federating many GraphQL services behind a Go router with a schema registry.
- Hasura
- TypeScript · Apache-2.0
- PostGraphile
- TypeScript · MIT
- Cosmo (WunderGraph)
- TypeScript · Apache-2.0
- Updated
- 2026-09-25
Which one should you pick?
- You want instant GraphQL and REST over several databases via data connectors
- You want a managed-style engine with permissions and a console
- Your data lives in PostgreSQL and you want to lean on Row-Level Security
- You want a TypeScript/Node library you can embed in your own server
- You already have several GraphQL services and need federation
- You need a schema registry, composition checks and usage analytics
Side by side
| Attribute | Hasura | PostGraphile | Cosmo (WunderGraph) |
|---|---|---|---|
| Written in | TypeScriptHaskell | TypeScriptPLpgSQLJavaScript | TypeScriptGoHTML |
| License | Apache-2.0 | MIT | Apache-2.0 |
| Frontend | React | ReactGraphiQL | Next.jsRadix UIGraphiQL |
| Backend & APIs | HaskellRustGoGraphQL | TypeScriptNode.jsGraphQL | TypeScriptGoConnectRPC |
| Data & persistence | PostgreSQLSQLite | PostgreSQL | PostgreSQLDrizzleClickHouse |
| Infrastructure & deploy | DockerCircleCI | YarnJest | KeycloakDockerHelmNATS |
| Key decisions |
|
|
|
| Audited | 17493b6 · 2026-09-17 | 566caa3 · 2026-09-17 | 26545dc · 2026-09-17 |
How they differ
Generating an API from a database
Hasura ships two engines from one repository and plugs new databases in as out-of-process Data Connector agents; its CLI is a separate Go module. PostGraphile introspects PostgreSQL and compiles it into a GraphQL schema executed by Grafast, which plans operations instead of running per-field resolvers, and enforces Row-Level Security inside PostgreSQL transactions. It runs on any Node HTTP framework through Grafserv adapters.
Federating services
WunderGraph Cosmo separates runtime from management: a Go router serves federated traffic, a TypeScript control plane (Drizzle on PostgreSQL) manages the schema registry, a Go service writes usage analytics to ClickHouse, and Keycloak handles auth. Services talk over ConnectRPC.
Architecture diagrams
Frequently asked questions
Is Hasura written in Haskell or Rust?
Both. The Hasura repository ships the mature GraphQL Engine V2 in Haskell and the newer V3 engine behind Hasura DDN in Rust.
Is WunderGraph Cosmo an alternative to Hasura?
Only partly. Hasura and PostGraphile generate a GraphQL API from a database, while Cosmo federates existing GraphQL services behind a router and manages their schemas.
More architecture comparisons
View allAFFiNE vs AppFlowy
AFFiNE vs AppFlowy compared on architecture: React + Yjs vs Flutter + Rust, local-first storage, sync servers, native code and local AI.
Appsmith vs ToolJet vs Budibase
Appsmith, ToolJet and Budibase compared on architecture: Java vs NestJS vs Koa, MongoDB vs PostgreSQL vs CouchDB, sandboxing, plugins and deployment.
Authelia vs authentik vs Logto
Authelia, authentik and Logto compared on architecture: Go vs Django vs Koa, storage, OIDC providers, protocol support and how each fits a self-hosted stack.
Axum vs Actix Web
Axum vs Actix Web compared on architecture: Hyper and Tower vs an own HTTP stack, routing, middleware, crates in the workspace and who uses each.