Metadata-Version: 2.3
Name: interface_gen
Version: 0.0.17
Summary: Define data format schemas once and generate code for multiple languages and serialization frameworks.
Project-URL: Homepage, https://github.com/getditto/interface-gen
Project-URL: Issues, https://github.com/getditto/interface-gen/issues
Author-email: Aaron Fabbri <aaron.fabbri@ditto.live>
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: File Formats
Requires-Python: >=3.10
Requires-Dist: asn1tools==0.166.0
Requires-Dist: attrs==23.2.0
Requires-Dist: avro==1.11.3
Requires-Dist: avrotize==1.6.1
Requires-Dist: azure-core==1.30.1
Requires-Dist: azure-identity==1.16.1
Requires-Dist: azure-kusto-data==4.4.1
Requires-Dist: bitstruct==8.19.0
Requires-Dist: certifi==2024.2.2
Requires-Dist: cffi==1.16.0
Requires-Dist: charset-normalizer==3.3.2
Requires-Dist: cryptography==42.0.7
Requires-Dist: fastavro==1.9.4
Requires-Dist: flake8==7.0.0
Requires-Dist: idna==3.7
Requires-Dist: ijson==3.2.3
Requires-Dist: install-jdk==1.1.0
Requires-Dist: jsoncomparison==1.1.0
Requires-Dist: jsonpath-ng==1.6.1
Requires-Dist: jsonpointer==2.4
Requires-Dist: jsonschema-specifications==2023.12.1
Requires-Dist: jsonschema==4.22.0
Requires-Dist: lark==1.1.9
Requires-Dist: mccabe==0.7.0
Requires-Dist: msal-extensions==1.1.0
Requires-Dist: msal==1.28.0
Requires-Dist: numpy==1.26.4
Requires-Dist: packaging==24.0
Requires-Dist: ply==3.11
Requires-Dist: portalocker==2.8.2
Requires-Dist: pyarrow==16.1.0
Requires-Dist: pycodestyle==2.11.1
Requires-Dist: pycparser==2.22
Requires-Dist: pyflakes==3.2.0
Requires-Dist: pyjwt==2.8.0
Requires-Dist: pyparsing==3.1.2
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: referencing==0.35.1
Requires-Dist: requests==2.32.0
Requires-Dist: rpds-py==0.18.1
Requires-Dist: six==1.16.0
Requires-Dist: typing-extensions==4.11.0
Requires-Dist: urllib3==2.2.1
Description-Content-Type: text/markdown

# Interface Generator

Write your protocol specifications in a single language (Avro IDL) and
automatically generate schema definitions, code, and documentation for multiple
languages and serialization frameworks, including:

- Protobuf (proto3)
- Apache Avro Schema (.avsc)
- JSON schema
- XML schema
- SQL DDL (create table)
- .. and of the other formats supported by [Avrotize](https://github.com/clemensv/avrotize).

## Quick Start

1. Create a virtual environment (optional but recommended), and activate it:

```
python -m venv venv
source venv/bin/activate

```

2. Install the package:

```
python -m pip install interface-gen
```

3. Set up your protocol definitions and output directory.

```
mkdir -p my-protocols/v1.0
mkdir my-output
```

Place your Avro IDL definition files (.avdl)  in `my-protocols/v1.0`

4. Run the generator:

```
ifgen -i -p my-protocols -o my-output
```

## More Details

For more details see the source code docs:

- Python [interface\_gen/README.md](https://github.com/getditto/interface_gen/README.md)
- Main [README.md](https://github.com/getditto/interface-gen/blob/main/README.md)
- The [code repostitory](https://github.com/getditto/interface-gen)

