b6767e8399
<!-- The PR description should answer 2 important questions: --> ### What Some "medium-hanging" fruit optimizations of mbs validate and build code paths Latest timing relative to `main` as of 10/18: ``` validate example/chinook.json time: [6.3984 ms 6.4236 ms 6.4532 ms] change: [-46.276% -45.876% -45.440%] (p = 0.00 < 0.05) Performance has improved. validate example/multiple-subgraphs.json time: [1.6909 ms 1.7024 ms 1.7165 ms] change: [-44.488% -44.141% -43.771%] (p = 0.00 < 0.05) Performance has improved. validate example/chinook-invoices.json time: [3.8878 ms 3.9039 ms 3.9220 ms] change: [-45.544% -45.201% -44.863%] (p = 0.00 < 0.05) Performance has improved. validate example/big_pretty_DONT_COMMIT.json time: [3.6692 s 3.6789 s 3.6889 s] change: [-36.964% -36.755% -36.544%] (p = 0.00 < 0.05) Performance has improved. build example/chinook.json time: [18.274 ms 18.345 ms 18.414 ms] change: [-29.874% -29.359% -28.850%] (p = 0.00 < 0.05) Performance has improved. build example/multiple-subgraphs.json time: [3.4423 ms 3.4588 ms 3.4760 ms] change: [-33.073% -32.628% -32.199%] (p = 0.00 < 0.05) Performance has improved. build example/chinook-invoices.json time: [11.000 ms 11.027 ms 11.057 ms] change: [-26.051% -25.757% -25.449%] (p = 0.00 < 0.05) Performance has improved. Benchmarking build example/big_pretty_DONT_COMMIT.json: Collecting 100 samples in estimated 1359.8 s (100 iterations) build example/big_pretty_DONT_COMMIT.json time: [13.429 s 13.465 s 13.503 s] change: [-21.864% -21.634% -21.367%] (p = 0.00 < 0.05) Performance has improved. ``` ### How ✨ optimizing ✨ ### Internal details The absolute numbers for build in the PR are not accurate after rebasing on current `main`, but absolute improvement in secs/ms is about the same. (/private) V3_GIT_ORIGIN_REV_ID: a4fe628a08a35a88c2ca958a1d22f1fc6ddf2a5b |
||
---|---|---|
.circleci | ||
.devcontainer/docs | ||
.github | ||
architecture | ||
assets | ||
cabal | ||
cli | ||
cli-ext | ||
community | ||
console | ||
contrib/metadata-types | ||
dc-agents | ||
docker-compose | ||
docs | ||
frontend | ||
install-manifests | ||
metadata-api-types | ||
nix | ||
packaging | ||
preload-mimalloc | ||
releases | ||
rfcs | ||
scripts | ||
server | ||
translations | ||
v3 | ||
.dockerignore | ||
.envrc | ||
.envrc.local.example | ||
.ghcversion | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.hlint.yaml | ||
.kodiak.toml | ||
.nvmrc | ||
.prettierignore | ||
cabal.project | ||
cabal.project.freeze | ||
CHANGELOG.md | ||
code-of-conduct.md | ||
CONTRIBUTING.md | ||
docker-compose.yaml | ||
event-triggers.md | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
LICENSE-community | ||
Makefile | ||
metadata.openapi.json | ||
README.md | ||
remote-schemas.md | ||
sample.hie.yaml | ||
SECURITY.md | ||
shell.nix | ||
V2-README.md | ||
yarn.lock |
Hasura GraphQL Engine
The Hasura engine is an open source project which supercharges the building of modern applications by providing access to data via a single, composable, secure API endpoint.
Hasura V3
The future of data delivery is GA: Supporting PostgreSQL (and its flavors), MongoDB, ClickHouse, and MS SQL Server. Also supports writing custom business logic using the Typescript, Python, and Go Connector SDKs. Here is the recommended Getting Started guide on DDN.
The Hasura v3 engine code, which powers Hasura DDN, is in the v3
folder of this repo. You can find more detailed
information about in this v3 README.
The Hasura DDN architecture includes Data Connectors to connect to data sources. All Hasura connectors are also available completely open source. Check out the Connector Hub which lists all available connectors.
Hasura V2
Hasura V2 is the current stable version of the Hasura GraphQL Engine. Please find more
detailed information about the V2 Hasura Graphql Engine in the v2
folder and this README.
Cloning repository
This repository is a large and active mono-repo containing many parts of the Hasura ecosystem and a long git history, that can make the first time cloning of the repository slow and consume a lot of disk space. We recommend following if you are facing cloning issues.
Shallow clone
This will only clone the latest commit and ignore all historical commits.
git clone https://github.com/hasura/graphql-engine.git --depth 1
Git checkout with only Hasura V3 engine code
git clone --no-checkout https://github.com/hasura/graphql-engine.git --depth 1
cd graphql-engine
git sparse-checkout init --cone
git sparse-checkout set v3
git checkout @
This checkouts the top level files and only the v3
folder which contains the Hasura V3 Engine code.
Support & Troubleshooting
To troubleshoot most issues, check out our documentation and community resources. If you have encountered a bug or need to get in touch with us, you can contact us using one of the following channels:
- Hasura DDN documentation: DDN docs
- Hasura V2 documentation: V2 docs
- Support & feedback: Discord
- Issue & bug tracking: GitHub issues
- Follow product updates: @HasuraHQ
- Talk to us on our website chat
Code of Conduct
We are committed to fostering an open and welcoming environment in the community. Please see the Code of Conduct.
Security
If you want to report a security issue, please read this.
Stay up to date
Join our communities to stay up to date on announcements, events, product updates, and technical blogs. https://hasura.io/community/
Contributing
Check out our contributing guide for more details.
Brand assets
Hasura brand assets (logos, the Hasura mascot, powered by badges etc.) can be found in the v2/assets/brand folder. Feel free to use them in your application/website etc. We'd be thrilled if you add the "Powered by Hasura" badge to your applications built using Hasura. ❤️
Licenses
V3
All the Data Connectors are available under the Apache License 2.0.
The core V3 GraphQL Engine is intended to be licensed under the Apache License 2.0 (Apache-2.0).
V2
The V2 core GraphQL Engine is available under the Apache License 2.0 (Apache-2.0).
All other contents in the v2 folder (except those in server
, cli
and
console
directories) are available under the MIT License.
This includes everything in the docs
and community
directories.