Metadata-Version: 2.4
Name: juturna
Version: 2.0.0
Summary: Juturna core library
Project-URL: Homepage, https://github.com/meetecho/juturna
Project-URL: Documentation, https://meetecho.github.io/juturna/index.html
Project-URL: Repository, https://github.com/meetecho/juturna
Project-URL: Issues, https://github.com/meetecho/juturna/issues
Project-URL: Changelog, https://github.com/meetecho/juturna/blob/main/CHANGELOG.md
Author-email: Antonio Bevilacqua <b3by.in.th3.sky@gmail.com>, Paolo Saviano <psaviano@meetecho.com>
Maintainer-email: Antonio Bevilacqua <b3by.in.th3.sky@gmail.com>, Paolo Saviano <psaviano@meetecho.com>
License: MIT
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.12
Requires-Dist: av>=16.0.0
Requires-Dist: numpy<3.0.0,>=2.2.3
Requires-Dist: requests<3.0.0,>=2.32.3
Requires-Dist: websockets>=16.0
Provides-Extra: all
Requires-Dist: bandit==1.9.2; extra == 'all'
Requires-Dist: conventional-pre-commit==4.3.0; extra == 'all'
Requires-Dist: fastapi-cli<0.0.8,>=0.0.7; extra == 'all'
Requires-Dist: fastapi>=0.127.1; extra == 'all'
Requires-Dist: furo==2025.7.19; extra == 'all'
Requires-Dist: grpcio-tools==1.76.0; extra == 'all'
Requires-Dist: grpcio==1.76.0; extra == 'all'
Requires-Dist: pre-commit==4.5.0; extra == 'all'
Requires-Dist: prompt-toolkit>=3.0.52; extra == 'all'
Requires-Dist: protobuf==6.33.1; extra == 'all'
Requires-Dist: pytest==9.0.2; extra == 'all'
Requires-Dist: rich>=14.1.0; extra == 'all'
Requires-Dist: ruff>=0.14.8; extra == 'all'
Requires-Dist: sphinx-autoapi==3.6.0; extra == 'all'
Requires-Dist: sphinx-autobuild==2025.8.25; extra == 'all'
Requires-Dist: sphinx-design==0.7.0; extra == 'all'
Requires-Dist: sphinx-new-tab-link==0.8.0; extra == 'all'
Requires-Dist: sphinx<9.0,>6.0; extra == 'all'
Requires-Dist: sphinxcontrib-apidoc==0.6.0; extra == 'all'
Requires-Dist: sphinxcontrib-napoleon==0.7; extra == 'all'
Requires-Dist: typing-extensions==4.15.0; extra == 'all'
Provides-Extra: dev
Requires-Dist: bandit==1.9.2; extra == 'dev'
Requires-Dist: conventional-pre-commit==4.3.0; extra == 'dev'
Requires-Dist: pre-commit==4.5.0; extra == 'dev'
Provides-Extra: dev-full
Requires-Dist: bandit==1.9.2; extra == 'dev-full'
Requires-Dist: conventional-pre-commit==4.3.0; extra == 'dev-full'
Requires-Dist: furo==2025.7.19; extra == 'dev-full'
Requires-Dist: pre-commit==4.5.0; extra == 'dev-full'
Requires-Dist: pytest==9.0.2; extra == 'dev-full'
Requires-Dist: ruff>=0.14.8; extra == 'dev-full'
Requires-Dist: sphinx-autoapi==3.6.0; extra == 'dev-full'
Requires-Dist: sphinx-autobuild==2025.8.25; extra == 'dev-full'
Requires-Dist: sphinx-design==0.7.0; extra == 'dev-full'
Requires-Dist: sphinx-new-tab-link==0.8.0; extra == 'dev-full'
Requires-Dist: sphinx<9.0,>6.0; extra == 'dev-full'
Requires-Dist: sphinxcontrib-apidoc==0.6.0; extra == 'dev-full'
Requires-Dist: sphinxcontrib-napoleon==0.7; extra == 'dev-full'
Provides-Extra: doc
Requires-Dist: furo==2025.7.19; extra == 'doc'
Requires-Dist: sphinx-autoapi==3.6.0; extra == 'doc'
Requires-Dist: sphinx-autobuild==2025.8.25; extra == 'doc'
Requires-Dist: sphinx-design==0.7.0; extra == 'doc'
Requires-Dist: sphinx-new-tab-link==0.8.0; extra == 'doc'
Requires-Dist: sphinx<9.0,>6.0; extra == 'doc'
Requires-Dist: sphinxcontrib-apidoc==0.6.0; extra == 'doc'
Requires-Dist: sphinxcontrib-napoleon==0.7; extra == 'doc'
Provides-Extra: full
Requires-Dist: fastapi-cli<0.0.8,>=0.0.7; extra == 'full'
Requires-Dist: fastapi>=0.127.1; extra == 'full'
Requires-Dist: grpcio-tools==1.76.0; extra == 'full'
Requires-Dist: grpcio==1.76.0; extra == 'full'
Requires-Dist: prompt-toolkit>=3.0.52; extra == 'full'
Requires-Dist: protobuf==6.33.1; extra == 'full'
Requires-Dist: rich>=14.1.0; extra == 'full'
Requires-Dist: typing-extensions==4.15.0; extra == 'full'
Provides-Extra: httpwrapper
Requires-Dist: fastapi-cli<0.0.8,>=0.0.7; extra == 'httpwrapper'
Requires-Dist: fastapi>=0.127.1; extra == 'httpwrapper'
Provides-Extra: lint
Requires-Dist: ruff>=0.14.8; extra == 'lint'
Provides-Extra: pipebuilder
Requires-Dist: prompt-toolkit>=3.0.52; extra == 'pipebuilder'
Requires-Dist: rich>=14.1.0; extra == 'pipebuilder'
Provides-Extra: test
Requires-Dist: pytest==9.0.2; extra == 'test'
Provides-Extra: warp
Requires-Dist: grpcio-tools==1.76.0; extra == 'warp'
Requires-Dist: grpcio==1.76.0; extra == 'warp'
Requires-Dist: protobuf==6.33.1; extra == 'warp'
Requires-Dist: typing-extensions==4.15.0; extra == 'warp'
Description-Content-Type: text/markdown

# Juturna – Real-time AI Pipeline Framework
<p align="center"><img src="https://raw.githubusercontent.com/meetecho/juturna/main/docs/source/_static/img/logo_dark_alt.svg" width="30%">
<br>
<img src="https://img.shields.io/github/license/meetecho/juturna?style=for-the-badge"> <img src="https://img.shields.io/github/stars/meetecho/juturna?style=for-the-badge"> <img src="https://img.shields.io/github/forks/meetecho/juturna?style=for-the-badge"> <img src="https://img.shields.io/github/issues/meetecho/juturna?style=for-the-badge">
</p>

## Important to know
Juturna is actively evolving with exciting new features and improvements being
added regularly. We're using semantic versioning to clearly communicate any
breaking changes between releases, so you can upgrade with confidence. Juturna
is perfect for experimentation and prototyping today, and we're working toward
production-ready stability with each release. So, if you plan to deploy it in
production, make sure you are comfortable managing potential updates and
adjustments.

## At a glance

**Juturna** is a data pipeline library written in Python. It is particularly
useful for fast prototyping multimedia, **real-time** data applications, as
well as exploring and testing AI models, in a modular and flexible fashion.

Among its many features, there are a few keypoints to highligh about Juturna:

* **Real-Time Streaming:** continuouusly process audio, video and
  arbitrary data streams
* **Modularity:** create your own nodes and share them through
  the Juturna hub
* **Composable workloads:** design pipelines to solve complex tasks in
  minutes
* **Parallelism & Batching:** parallel, non-blocking execution for high
  throughput
* **Observability:** built-in logging and metrics support

Documentation: [https://meetecho.github.io/juturna/index.html](https://meetecho.github.io/juturna/index.html)

Contribute: [https://github.com/meetecho/juturna/blob/main/CONTRIBUTING.md](https://github.com/meetecho/juturna/blob/main/CONTRIBUTING.md)

Meetecho: [https://www.meetecho.com/en/](https://www.meetecho.com/en/)

## Contributing

We are so glad you decided to contribute! We truly value your time and help in
making Juturna better, and look forward to every single PR, whether you are
fixing typos, proposing the next big feature, or extending the documentation.

To make sure we’re all on the same page and to get your changes merged as
quickly as possible, please take a peek at our
[`CONTRIBUTING.md`](https://github.com/meetecho/juturna/blob/main/CONTRIBUTING.md)
guide. It covers the essentials, including:

* branching & PR workflow
* code style & linting
* issue triage (TBD)
* issue & PR templates and a Code of Conduct are provided (TBD)
* signing CRA

If you are not sure where to start, feel free to open an issue to discuss your
ideas first. We’re happy to help guide you through the process!

## Changelog

All notable changes are documented in
[`CHANGELOG.md`](https://github.com/meetecho/juturna/blob/main/CHANGELOG.md) - we
follow [Semantic Versioning](https://semver.org), so you'll always know how
exactly updates affect your setup.

## License

Distributed under the **MIT License**. See [LICENSE](https://github.com/meetecho/juturna/blob/main/LICENSE) for details.
