Skip to main content

Juturna core library

Project description

Juturna – Real-time AI Pipeline Framework


:seedling: 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:

  • :zap: Real-Time Streaming: continuouusly process audio, video and arbitrary data streams
  • :electric_plug: Modularity: create your own nodes and share them through the Juturna hub
  • :link: 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 | contribute | meetecho

Overview

A pipeline can simply be defined as a collection of nodes.

Each node acquires a piece of data from its parents and, after performing a single task, provide its output to its children. In this sense, a Juturna pipeline is nothing else but a DAG, where root nodes have an in-degree of 0 (this is not technically the case, but we’ll skip it for now), and every other node has an in-degree of 1 or more.

An example of one of our pipelines, currently in use for live audio transcription and summarisation is shown here.

Whilst Juturna ships with a number of built-in nodes (mainly source and sink nodes), you can implement your own nodes with ease, and share them so others can use them too.

To know more about the Juturna internals, please refer to the full documentation.

Installation

The following dependencies are required to use Juturna:

  • python >= 3.12
  • system libraries libsm6, libext6, ffmpeg

:information_source: Current Python building version is 3.12. The library still has to be tested on Python 3.13 and later with GIL disabled.

Juturna is currently available as a opensource codebase, but not yet published on PyPi. To install it on your system, first clone the repository, then use pip to install it (assuming you are working in a virtual environment):

(venv) $ git clone https://github.com/meetecho/juturna
(venv) $ pip install ./juturna

In case you want to include all the development dependencies in the installation, specify the dev group:

(venv) $ pip install "./juturna[dev]"

To include the Juturna HTTP wrapper, include the httpwrapper:

(venv) $ pip install "./juturna[httpwrapper]"

Alternatively, you can manually install the required dependencies, and just import the juturna module from within the repository folder:

(venv) $ pip install av ffmpeg-python opencv-python numpy requests websockets
(venv) $ python
>>> import juturna as jt

Dockerfile

In the Juturna repository you will find a Dockerfile that can be used to create a base Juturna image. To build it, symply navigate within the repo folder and run:

$ docker build -t juturna:latest .

Contributing

Please read CONTRIBUTING.md for:

  • Branching & PR workflow
  • Code style & linting
  • Issue triage (TBD)
  • Issue & PR templates and a Code of Conduct are provided (TBD)
  • Signing CRA

Changelog

All notable changes are documented in CHANGELOG.md following Semantic Versioning.

External Docs & Support

Coming soon!

License

Distributed under the MIT License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

juturna-1.0.2.tar.gz (48.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

juturna-1.0.2-py3-none-any.whl (74.6 kB view details)

Uploaded Python 3

File details

Details for the file juturna-1.0.2.tar.gz.

File metadata

  • Download URL: juturna-1.0.2.tar.gz
  • Upload date:
  • Size: 48.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.14.0-35-generic

File hashes

Hashes for juturna-1.0.2.tar.gz
Algorithm Hash digest
SHA256 7b1f3b0e8bb9fc1c4e0534fc8227710561244d1a5f1046ff9fbb41a19efaa61c
MD5 6a66bb1ea6b9757f27dff5e47dce862b
BLAKE2b-256 975fc4ebc5468c4a29ef104d805976cec99d73f59524d6d65574e3bbcaf8b86a

See more details on using hashes here.

File details

Details for the file juturna-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: juturna-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 74.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.14.0-35-generic

File hashes

Hashes for juturna-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a5df0a5d99876c426be2644d9d51e608ecc4bf4eeaf0b01369eb23d8cb04bf3a
MD5 85827865d7411e3e8e5fc72a32e6fc9a
BLAKE2b-256 12d5fccd9687b2f8f510aa343a011b17cbe7e03e093fcba0a6b9a1ceb27594aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page