Metadata-Version: 2.4
Name: eventum-generator
Version: 2.4.0
Summary: Flexible event generator
Project-URL: Homepage, https://eventum.run
Project-URL: Source, https://github.com/eventum-generator/eventum
Project-URL: Documentation, https://eventum.run/docs
Project-URL: Changelog, https://github.com/eventum-generator/eventum/blob/master/CHANGELOG.md
Author-email: Nikita Reznikov <nikita.reznikov.public@mail.ru>
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Testing :: Mocking
Classifier: Topic :: Software Development :: Testing :: Traffic Generation
Classifier: Typing :: Typed
Requires-Python: >=3.14
Requires-Dist: aioconsole>=0.8.2
Requires-Dist: aiofiles>=25.1.0
Requires-Dist: aiokafka>=0.12.0
Requires-Dist: case-converter>=1.2.0
Requires-Dist: click>=8.3.1
Requires-Dist: clickhouse-connect>=0.13.0
Requires-Dist: croniter>=6.0.0
Requires-Dist: dateparser>=1.3.0
Requires-Dist: faker>=40.5.1
Requires-Dist: fastapi>=0.134.0
Requires-Dist: flatten-dict>=0.4.2
Requires-Dist: griffe>=2.0.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: jinja2>=3.1.6
Requires-Dist: keyring>=25.7.0
Requires-Dist: keyrings-cryptfile>=1.3.9
Requires-Dist: mimesis>=19.0.0
Requires-Dist: msgspec>=0.20.0
Requires-Dist: numpy>=2.4.2
Requires-Dist: psutil>=7.2.2
Requires-Dist: pwinput>=1.0.3
Requires-Dist: pydantic>=2.12.5
Requires-Dist: python-multipart>=0.0.22
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: rich>=14.3.3
Requires-Dist: setproctitle>=1.3.7
Requires-Dist: structlog>=25.5.0
Requires-Dist: tablib>=3.9.0
Requires-Dist: uvicorn>=0.41.0
Requires-Dist: websockets>=16.0
Description-Content-Type: text/markdown

<p align="center">
  <img src="https://raw.githubusercontent.com/eventum-generator/eventum/master/static/logo.svg" alt="Eventum" width="120" />
</p>

<h1 align="center">Eventum</h1>

<p align="center">
  <strong>
    Data generation platform
  </strong>
</p>

<p align="center">
  <a href="https://github.com/eventum-generator/eventum/actions/workflows/ci.yml"><img src="https://github.com/eventum-generator/eventum/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
  <a href="https://codecov.io/gh/eventum-generator/eventum"><img src="https://codecov.io/gh/eventum-generator/eventum/graph/badge.svg" alt="Coverage" /></a>
  <a href="https://pypi.org/project/eventum-generator"><img src="https://img.shields.io/pypi/v/eventum-generator?color=3873a3" alt="PyPI" /></a>
  <a href="https://pypi.org/project/eventum-generator"><img src="https://img.shields.io/pypi/pyversions/eventum-generator?color=3873a3" alt="Python" /></a>
  <a href="https://hub.docker.com/r/rnv812/eventum-generator"><img src="https://img.shields.io/docker/v/rnv812/eventum-generator?label=docker&color=2986ff" alt="Docker" /></a>
  <a href="https://pepy.tech/projects/eventum-generator"><img src="https://static.pepy.tech/badge/eventum-generator?color=8282ef" alt="Downloads" /></a>
  <a href="https://github.com/eventum-generator/eventum/blob/master/LICENSE"><img src="https://img.shields.io/github/license/eventum-generator/eventum?color=8282ef" alt="License" /></a>
</p>

<p align="center">
  <a href="https://eventum.run"><strong>📖 Documentation</strong></a> &nbsp;·&nbsp;
  <a href="https://eventum.run/docs/tutorials"><strong>🎓 Tutorials</strong></a> &nbsp;·&nbsp;
  <a href="https://eventum.run/docs/api"><strong>🔌 API Reference</strong></a> &nbsp;·&nbsp;
  <a href="https://github.com/eventum-generator/eventum/blob/master/CHANGELOG.md"><strong>📋 Changelog</strong></a> &nbsp;·&nbsp;
  <a href="https://github.com/orgs/eventum-generator/projects/4"><strong>📅 Task tracker</strong></a>  &nbsp;·&nbsp;
  <a href="https://github.com/orgs/eventum-generator/discussions"><strong>💬 Discuss</strong></a>
</p>

---

Eventum produces synthetic events and delivers them anywhere — in real time or in batch. Generate a continuous stream of logs for your SIEM, seed a staging database with realistic data, or stress-test a pipeline with high-throughput traffic. Define everything in YAML, no code required.

<p align="center">
  <img src="https://raw.githubusercontent.com/eventum-generator/eventum/master/.github/assets/pipeline.svg" alt="Input → Event → Output pipeline" width="680" />
</p>

## ✨ Highlights

🎭 **Realistic data** — Jinja2 templates with [Faker](https://faker.readthedocs.io/) and [Mimesis](https://mimesis.name/) generate believable names, IPs, timestamps, and domain-specific values

🕐 **Flexible scheduling** — cron expressions, fixed intervals, or statistical time patterns that mimic real-world traffic curves

📤 **Multiple destinations** — fan-out to stdout, files, ClickHouse, OpenSearch, or any HTTP endpoint simultaneously

🔀 **Two modes** — stream events in real time at their scheduled timestamps, or generate everything as fast as possible

🖥️ **Built-in web UI** — [Eventum Studio](https://eventum.run) for visual editing, event preview, and monitoring

⚡ **REST API** — start, stop, and manage generators programmatically

🔒 **Encrypted secrets** — credentials stored securely via an encrypted keyring

🐳 **Docker ready** — multi-stage builds, runs anywhere

## 🚀 Quick start

**Install**

```bash
pip install eventum-generator
```

> Also available via [uv](https://docs.astral.sh/uv/) (`uv tool install eventum-generator`) or [Docker](https://hub.docker.com/r/rnv812/eventum-generator) (`docker pull rnv812/eventum-generator`).

**Create a template** — `events.jinja`

```jinja
{{ timestamp }} INFO  user={{ module.faker.locale.en.user_name() }} action=login ip={{ module.faker.locale.en.ipv4() }}
```

**Create a config** — `generator.yml`

```yaml
input:
  - cron:
      expression: "* * * * * *"
      count: 1

event:
  template:
    mode: all
    templates:
      - my_event:
          template: events.jinja

output:
  - stdout: {}
```

**Run**

```bash
eventum generate --path generator.yml --live-mode
```

```
2026-02-23 12:00:01+00:00 INFO  user=jsmith action=login ip=192.168.44.12
2026-02-23 12:00:02+00:00 INFO  user=amiller action=login ip=10.0.128.55
2026-02-23 12:00:03+00:00 INFO  user=kwilson action=login ip=172.16.0.91
```


## 🔌 Plugins

Each part of the pipeline is a plugin. Swap, combine, or extend — change the schedule without touching templates, add new outputs without modifying anything else. See the [plugin reference](https://eventum.run/docs/plugins) for the full list.

## 🖥️ Application mode

Run multiple generators with a web UI and REST API:

```bash
eventum run -c eventum.yml
```

Starts on port **9474** with **Eventum Studio** (web UI), **REST API**, and **multi-generator orchestration** — each generator runs independently with its own schedule, templates, and outputs.

## 📖 Documentation

Full documentation at **[eventum.run](https://eventum.run)**:

- [Getting started](https://eventum.run/docs) — overview and first example
- [Installation](https://eventum.run/docs/core/introduction/installation) — pip, Docker, or from source
- [Core concepts](https://eventum.run/docs/core/concepts/generator) — pipeline, plugins, scheduling
- [Plugin reference](https://eventum.run/docs/plugins) — every plugin with full parameter tables
- [Tutorials](https://eventum.run/docs/tutorials) — end-to-end walkthroughs (SIEM, clickstream, IoT, and more)

## 📊 Activity

<p align="center">
  <img src="https://repobeats.axiom.co/api/embed/f22feef9f6aaae3972c8368e5e425dd06be42c87.svg" alt="Repobeats analytics image" />
</p>

<p align="center">
  <a href="https://star-history.com/#eventum-generator/eventum&Date">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=eventum-generator/eventum&type=Date&theme=dark" />
      <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=eventum-generator/eventum&type=Date" />
      <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=eventum-generator/eventum&type=Date" width="680" />
    </picture>
  </a>
</p>

## 📄 License

[Apache License 2.0](LICENSE)
