Metadata-Version: 2.4
Name: ariadne-graphql-proxy
Version: 0.5.1
Summary: Ariadne toolkit for building GraphQL proxies.
Project-URL: Homepage, https://ariadnegraphql.org/
Project-URL: Repository, https://github.com/mirumee/ariadne-graphql-proxy
Project-URL: Bug Tracker, https://github.com/mirumee/ariadne-graphql-proxy/issues
Project-URL: Community, https://github.com/mirumee/ariadne/discussions
Author-email: Mirumee Software <ariadne@mirumee.com>
License-Expression: BSD-3-Clause
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: ariadne>=1.0.0
Requires-Dist: graphql-core<3.3,>=3.2.7
Requires-Dist: httpx~=0.28
Provides-Extra: aws
Requires-Dist: asgiref; extra == 'aws'
Requires-Dist: boto3; extra == 'aws'
Provides-Extra: dev
Requires-Dist: ipdb; extra == 'dev'
Requires-Dist: ruff<0.16.0,>=0.15.0; extra == 'dev'
Provides-Extra: orjson
Requires-Dist: orjson; extra == 'orjson'
Provides-Extra: test
Requires-Dist: freezegun; extra == 'test'
Requires-Dist: moto[dynamodb]; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-asyncio; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest-httpx; extra == 'test'
Requires-Dist: pytest-mock; extra == 'test'
Provides-Extra: types
Requires-Dist: ty<0.1.0,>=0.0.20; extra == 'types'
Description-Content-Type: text/markdown

[![Ariadne](https://ariadnegraphql.org/img/logo-horizontal-sm.png)](https://ariadnegraphql.org)

- - - - -

# Ariadne GraphQL Proxy

Ariadne toolkit for building GraphQL proxies.

Features:

- Combining multiple local and remote GraphQL schemas into single GraphQL schema.
- Routing GraphQL queries to local and remote GraphQL schemas.
- Foreign keys system for modeling relationships between separate services schemas.
- Cache framework for caching of GraphQL query results per query fields.
- Low-level utilities for GraphQL Schema manipulation: adding, removing and copying schema items.


## Installation

Ariadne GraphQL Proxy can be installed with pip:

```console
pip install ariadne-graphql-proxy
```

Ariadne GraphQL Proxy requires Python 3.10 or higher.


## Example

Following code combines two remote schemas into one:

```python
from ariadne.asgi import GraphQL
from ariadne_graphql_proxy import ProxySchema, get_context_value

proxy_schema = ProxySchema()

proxy_schema.add_remote_schema("https://example.com/first-graphql/")
proxy_schema.add_remote_schema("https://example.com/second-graphql/")

final_schema = proxy_schema.get_final_schema()

app = GraphQL(
    final_schema,
    context_value=get_context_value,
    root_value=proxy_schema.root_resolver,
)
```


## Usage guide

For guide on using Ariadne GraphQL Proxy, please see the [GUIDE.md](./GUIDE.md) file.

> **Note:** Ariadne GraphQL Proxy is currently in prototyping stages. Library's API can and will change!


## Contributing

We are welcoming contributions to Ariadne GraphQL Proxy!

If you've found a bug or issue, feel free to open [GitHub issue](https://github.com/mirumee/ariadne-graphql-proxy/issues).

If you have any questions or feedback, don't hesitate to catch us on [GitHub discussions on main Ariadne repo](https://github.com/mirumee/ariadne/discussions/).

Pull requests are also welcome! We only request that PRs providing new features and extending existing implementation are proceeded by discussion in dedicated GitHub issue with a proposal or on  [`ariadne/discussions`](https://github.com/mirumee/ariadne/discussions/).

Also make sure you follow [@AriadneGraphQL](https://twitter.com/AriadneGraphQL) on Twitter for latest updates, news and random musings!

**Crafted with ❤️ by [Mirumee Software](http://mirumee.com)**
ariadne@mirumee.com