<div align="center">
<img src="https://raw.githubusercontent.com/ipc-lab/kaira/main/docs/_static/logo.png" alt="Kaira Framework Logo" width="300px">
</div>

# Kaira - A PyTorch-based toolkit for simulating communication systems

[![Python CI](https://github.com/ipc-lab/kaira/actions/workflows/ci.yml/badge.svg)](https://github.com/ipc-lab/kaira/actions/workflows/ci.yml) [![Tests](https://github.com/ipc-lab/kaira/actions/workflows/tests.yml/badge.svg)](https://github.com/ipc-lab/kaira/actions/workflows/tests.yml) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Supported Platforms](https://img.shields.io/badge/platforms-linux--64%2Cosx--64%2Cwin--64-green)](https://github.com/ipc-lab/kaira/) [![ReadTheDocs Status](https://readthedocs.org/projects/kaira/badge/?version=latest)](https://kaira.readthedocs.io/en/latest/?badge=latest) [![PyPI Version](https://img.shields.io/pypi/v/pykaira)](https://pypi.org/project/pykaira/) [![GitHub Release (Latest)](https://img.shields.io/github/v/release/ipc-lab/kaira)](https://github.com/ipc-lab/kaira/releases) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pykaira)](https://github.com/ipc-lab/kaira/) [![License](https://img.shields.io/github/license/ipc-lab/kaira.svg)](https://github.com/ipc-lab/kaira/blob/master/LICENSE) [![Coverage Status](https://codecov.io/gh/ipc-lab/kaira/graph/badge.svg?token=6Z2IYG0E6P)](https://codecov.io/gh/ipc-lab/kaira) [![Dependabot Updates](https://github.com/ipc-lab/kaira/actions/workflows/dependabot/dependabot-updates/badge.svg)](https://github.com/ipc-lab/kaira/actions/workflows/dependabot/dependabot-updates)

**Build Better Communication Systems with Kaira.** Kaira is an open-source toolkit for PyTorch designed to help you simulate and innovate in communication systems. Its name is inspired by **Kayra** (from Turkic mythology, meaning 'creator') and **Kairos** (a Greek concept for the 'opportune moment'). This reflects Kaira's core purpose: to empower engineers and researchers to **architect** (*Kayra*) advanced communication models and to ensure messages are transmitted effectively and at the **right moment** (*Kairos*). Kaira provides the tools to design, analyze, and optimize complex communication scenarios, making it an essential asset for research and development.

Kaira is built to accelerate your research. Its user-friendly, modular design allows for easy integration with existing PyTorch projects, facilitating rapid prototyping of new communication strategies. This is particularly beneficial for developing and testing advanced techniques, such as deep joint source-channel coding (DeepJSCC) and other deep learning-based approaches, as well as classical forward error correction with industry-standard LDPC, Polar, and algebraic codes. Kaira helps you bring your innovative communication concepts to life.

> **Note**: Kaira is currently in beta. The API is subject to change as we refine the library based on user feedback and evolving research needs.

[Documentation](https://kaira.readthedocs.io/en/latest/)

# Features

1. **Research-Oriented**: Designed to accelerate communications
   research.
2. **Versatility**: Compatible with various data types and neural
   network architectures.
3. **Ease of Use**: User-friendly and easy to integrate with existing
   PyTorch projects.
4. **Open Source**: Allows for community contributions and
   improvements.
5. **Well Documented**: Comes with comprehensive documentation for easy
   understanding.

# Example Code

Here's a simple example showing how to use Kaira's Bourtsoulatze2019 DeepJSCC model:

<div align="center">
<img src="https://raw.githubusercontent.com/ipc-lab/kaira/refs/heads/main/docs/example_code.png" alt="Kaira Example Code" width="600px">
</div>

# Installation

The fastest way to install Kaira is directly from PyPI:

```bash
pip install pykaira
```

# Quick Links

- **GitHub Repository:** <https://github.com/ipc-lab/kaira/>
- **PyPI Package:**
  [https://pypi.org/project/pykaira](https://pypi.org/project/pykaira/)
- **Codecov:** <https://codecov.io/gh/ipc-lab/kaira>
- **License:** <https://github.com/ipc-lab/kaira/blob/master/LICENSE>

## Support

Get help and connect with the Kaira community through these channels:

- [Documentation](https://kaira.readthedocs.io/) - Official project
  documentation
- [GitHub Issues](https://github.com/ipc-lab/kaira/issues) - Bug
  reports and feature requests
- [Discussions](https://github.com/ipc-lab/kaira/discussions) -
  General questions and community discussions

# Contributors

<div align="center">
  <a href="https://github.com/ipc-lab/kaira/graphs/contributors">
    <img src="https://contrib.rocks/image?repo=ipc-lab/kaira" alt="Contributors" />
  </a>
</div>

We thank all our contributors for their valuable input and efforts to make Kaira better!

## How to Contribute

Contributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for more details on how to get started.

# License

Kaira is distributed under the terms of the [MIT
License](https://github.com/ipc-lab/kaira/blob/master/LICENSE).

# Citing Kaira

If you use Kaira in your research, please cite it using the following
format:

```bibtex
@software{kaira2025,
  title = {Kaira: A {PyTorch}-based toolkit for simulating communication systems},
  author = {{Kaira Contributors}},
  year = {2025},
  url = {https://github.com/ipc-lab/kaira},
  version = {0.1.0}
}
```
