Metadata-Version: 2.2
Name: pydjinni
Version: 1.0a9
Summary: An opinionated Djinni reimplementation written in Python.
Author-email: jothepro <pydjinni@jothe.pro>
Project-URL: Repository, https://github.com/pydjinni/pydjinni
Project-URL: Homepage, https://pydjinni.github.io/pydjinni
Keywords: djinni
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: importlib-metadata<9,>=8.5
Requires-Dist: click<9,>=8.1
Requires-Dist: Jinja2<4,>=3.1
Requires-Dist: pydantic<3,>=2.11.0
Requires-Dist: pydantic-settings<3,>=2.9.0
Requires-Dist: rich<14,>=13.9
Requires-Dist: PyYAML<7,>=6
Requires-Dist: dotmap<2,>=1.3
Requires-Dist: tomli_w<2,>=1.0
Requires-Dist: setuptools>=75
Requires-Dist: antlr4-python3-runtime==4.13.2
Requires-Dist: mistune<4,>=3
Requires-Dist: pygls<2,>=1.3
Provides-Extra: dev
Requires-Dist: pytest==8.3.3; extra == "dev"
Requires-Dist: pytest-asyncio==0.25.3; extra == "dev"
Requires-Dist: pytest-lsp==0.4.3; extra == "dev"
Requires-Dist: coverage==7.6.12; extra == "dev"
Requires-Dist: antlr4-tools==0.2.1; extra == "dev"
Provides-Extra: publish
Requires-Dist: twine==6.1.0; extra == "publish"
Requires-Dist: build==1.0.3; extra == "publish"
Provides-Extra: doc
Requires-Dist: mkdocs-material==9.6.7; extra == "doc"
Requires-Dist: mkdocs-click==0.8.1; extra == "doc"
Requires-Dist: mike==2.1.3; extra == "doc"
Requires-Dist: jsonref==1.1.0; extra == "doc"
Requires-Dist: mkdocs-macros-plugin==1.3.7; extra == "doc"
Requires-Dist: mkdocs-gen-files==0.5.0; extra == "doc"
Requires-Dist: mkdocstrings[python]==0.27.0; extra == "doc"
Requires-Dist: setuptools_scm==8.1.0; extra == "doc"

<div align="center">

<img src="https://raw.githubusercontent.com/pydjinni/pydjinni/main/docs/assets/logo.png" width="60" height="60" alt="logo">

# PyDjinni


![GitHub](https://img.shields.io/github/license/pydjinni/pydjinni)
![PyPI](https://img.shields.io/pypi/v/pydjinni)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pydjinni)
![PyPI - Downloads](https://img.shields.io/pypi/dm/pydjinni)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/pydjinni/pydjinni/workflow.yml)
[![Built with Material for MkDocs](https://img.shields.io/badge/Material_for_MkDocs-526CFE?logo=MaterialForMkDocs&logoColor=white)](https://squidfunk.github.io/mkdocs-material/)

An opinionated Djinni reimplementation written in Python.

</div>



## Features

- **Easy Interface Definition** The PyDjinni IDL allows to define the interface between the host language and C++ with a clean and intuitive syntax.
- **Flexible Configuration** The output can be configured comfortably with a YAML configuration file.
- **Modular** Pydjinni is modular. Additional capabilities can be added through custom plugins.
- **Toolchain** The tool provides additional utilities to help build, package and distribute cross-platform libraries.
- **Python API** The tools functionality can also be used from a Python API, in order to seamlessly embed into custom build processes.

## Installation

### PyPi (recommended)

```shell
pip install pydjinni
```

### Git

To get access to yet unreleased changes, PyDjinni can be installed directly from the git repository:

```shell
pip install git+https://git@github.com/pydjinni/pydjinni.git@main
```
