Skip to main content

InGraph

InGraph · Version License

InGraph ain't template generator 😜

InGraph is a Declarative Infrastructure Graph DSL for AWS CloudFormation.

  • Declarative: Never again abstract away from CloudFormation. Simply declare your infrastructure components, without the hassle of YAML, and preserve the strict semantic of the AWS CloudFormation language. Veterans, build on top of your knowledge. Beginners, learn CloudFormation effectively.

  • Composable: Create encapsulated components with their assets and dependencies, then share or compose them to build more complex infrastructures. From simple nodes to your whole graph, everything is a deployable infrastructure unit.

  • Integrated: Leverage the evergrowing Python ecosystem. Benefit from static type checking, take advantage of autocompletion in your editor, or even consume open infrastructure components via the Python Package Index, among others.

Learn how to use InGraph in your own project.

Installation

InGraph requires Python 3.8 or newer. Feel free to use your favorite tool or pip to install the ingraph package.

python3.8 -m pip install --user ingraph

Verify your installation by invoking the ig command. You should see a welcome screen.

Example

We have several examples on the website. Here is the first one to whet your appetite.

ig cfn -i example.py -r HelloWorld -o example.yaml

InGraph Example

This example creates a simple AWS Lambda function that returns a "Hello, World!" message.

You'll notice that CloudFormation parameters, along with their types and default values are simple constructor parameters, or that CloudFormation outputs are class attributes, or even that CloudFormation resource names are derived from variable names. It's only a taste of what is in store for you.

Contributing

The primary purpose of this project is to continue to evolve the core of InGraph. We are grateful to the community for any contribution. You may, for example, proof-read the documentation, submit bugs and fixes, provide improvements, discuss new axes of evolution, or spread the word around you.

Thanks

We want to thank and express our gratitude to Ben Kehoe. Without his guidance and support, this project wouldn't have been possible.

License

Unless otherwise stated, the source code of the project is released under the GNU Affero General Public License Version 3. Please note, however, that all public interfaces subject to be embedded within the source code of your infrastructure are released under the Apache License Version 2. Refer to the header of each file or to the LICENSE file present in the parent directory where appropriate.

Release files for ingraph 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ingraph 0.2.1
File Size Uploaded
ingraph-0.2.1.tar.gz 33.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ingraph 0.2.1
File Interpreter ABI Platform
ingraph-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 69.9 kB

Release files / ingraph-0.2.1.tar.gz

Download URL ingraph-0.2.1.tar.gz
Size 33.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4bb6fd10ac51a8feefab5a56a4d625ec3782fb290370d6d4d2194ececbd93989
BLAKE2b-256 checksum
How to use checksums
a440c608fc45295fa40d9481e88d71ce9b0faeaf19a1c0574d6b96cc3aaec012
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

Release files / ingraph-0.2.1-py3-none-any.whl

Download URL ingraph-0.2.1-py3-none-any.whl
Size 36.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c7af5c6a3b2c410071b70aa6a505c96fe12ecd8fb7a89a25c61f32c3da9a3e30
BLAKE2b-256 checksum
How to use checksums
de6d65f6cbffa477ac493c7261eb2cf9291908308925f3d885acc7790e8d4653
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page