Skip to main content

reeln-core

Shared Rust core library for reeln — the sports highlight rendering CLI. Provides native media processing, overlay rendering, game state management, and sport-specific logic consumed by the Python CLI, OBS plugin, and future Tauri desktop app.

License: AGPL-3.0-only | Homepage: https://streamn.dad | Org: StreamnDad

Architecture

reeln-core (Rust workspace)
├── reeln-media      Media processing via libav* (probe, render, concat, xfade, composite, extract)
├── reeln-overlay    2D overlay template engine (tiny-skia + cosmic-text → PNG)
├── reeln-sport      Sport registry & segment naming
├── reeln-state      Game state machine, JSON persistence, directory management
├── reeln-config     XDG configuration, env overrides, validation
├── reeln-plugin     Hook system, capabilities, dynamic plugin loading
├── reeln-python     PyO3 bindings → published as `reeln-native` on PyPI
└── reeln-ffi        C ABI (cdylib + staticlib) for OBS plugin integration

Crate Details

Crate Tests Key Dependencies Purpose
reeln-media 150 ffmpeg-next 8 Probe, render, concat, xfade, composite, frame extract
reeln-overlay 156 tiny-skia, cosmic-text, image Template-to-PNG rasterization
reeln-sport 38 serde Sport aliases, segment naming
reeln-state 35 serde_json, chrono, uuid, glob Game state CRUD, directory ops
reeln-config 61 dirs, serde_json Config loading, merge, env overrides
reeln-plugin 107 libloading Hook emission, plugin discovery
reeln-ffi 37 All reeln-* crates C ABI exports
reeln-python — pyo3 0.24 Python extension module
Total 584

Prerequisites

Rust toolchain:

rustup update stable

libav* development libraries (the ffmpeg command-line binary is not required at runtime):

# macOS
brew install ffmpeg pkg-config

# Ubuntu/Debian
sudo apt-get install -y libavcodec-dev libavformat-dev libavfilter-dev \
  libavutil-dev libswscale-dev libswresample-dev pkg-config

# Fedora
sudo dnf install ffmpeg-devel pkg-config

Building

# Build all crates
cargo build --release

# Run all tests (584 tests)
cargo test --all

# Check without building (faster)
cargo check --all

# Lint
cargo clippy --all-targets -- -D warnings

# Format
cargo fmt --all

Python Bindings

The reeln-python crate builds a native Python extension module published as reeln-native on PyPI.

# Development build (installs into active venv)
cd crates/reeln-python
pip install maturin
maturin develop --release

# Build wheel for distribution
maturin build --release

From reeln-cli:

# Install with native backend
pip install "reeln[native]"

# Or development install from source
cd /path/to/reeln-cli
make dev-install-native

Python API (reeln_native)

Function Module Description
probe(path) Media Probe media file → dict with duration, fps, width, height, codec
render(input, output, ...) Media Render video with optional filters
render_with_filters(input, output, filter_complex, ...) Media Render with full filter_complex string
concat(segments, output, ...) Media Concatenate media segments
xfade_concat(files, durations, output, ...) Media Cross-fade concatenation (xfade + acrossfade)
composite_overlay(video, overlay_png, output, ...) Media Composite PNG overlay onto video
extract_frame(input, timestamp, output) Media Extract single frame as PNG
list_sports() Sport List supported sport aliases
segment_dir_name(sport, number) Sport Generate segment directory name
segment_display_name(sport, number) Sport Generate segment display name
game_dir_name(date, home, away, number) State Generate game directory name
detect_next_game_number(base, date, home, away) State Detect next double-header number
find_unfinished_games(base_dir) State Find unfinished game directories
load_game_state(game_dir) State Load game state JSON
save_game_state(game_dir, json) State Save game state JSON
config_dir() Config Default config directory path
data_dir() Config Default data directory path
load_config(path, profile) Config Load configuration as JSON
validate_config(json) Config Validate config, return warnings
load_template(path) Overlay Load overlay template JSON
render_overlay(template, context, output) Overlay Render template to PNG
substitute_variables(text, context) Overlay Substitute {{variables}}
evaluate_visibility(condition, context) Overlay Evaluate visibility condition
list_hooks() Plugin List all hook names
load_native_plugin(path) Plugin Load native plugin from .so/.dylib
discover_plugins(dir) Plugin Discover plugins in directory

C ABI (reeln-ffi)

The reeln-ffi crate produces a C-compatible shared library for integration with C/C++ projects (e.g., OBS Studio plugins).

cargo build -p reeln-ffi --release
# Output: target/release/libreeln_ffi.{so,dylib,dll}

CI/CD

Workflow Trigger What it does
ci.yml Push/PR to main Format, clippy, test on Linux/macOS/Windows
release.yml Tag v* Build wheels for 5 platforms, publish to PyPI (OIDC)

Release targets:

  • x86_64-unknown-linux-gnu
  • aarch64-unknown-linux-gnu
  • x86_64-apple-darwin
  • aarch64-apple-darwin (Apple Silicon)
  • x86_64-pc-windows-msvc

Consumers

Project How it uses reeln-core
reeln-cli pip install "reeln[native]" — Python FFI via reeln_native
reeln plugins Indirectly via reeln-cli at runtime
streamn-scoreboard Subprocess calls to reeln CLI (future: link reeln-ffi)
reeln-tauri (planned) Direct Rust dependency

Versioning

  • Workspace version: 0.2.2 (all crates share this version)
  • reeln-cli declares reeln-native >= 0.1.0, < 1.0 as optional dependency
  • Changelog: CHANGELOG.md
  • Semantic versioning: MAJOR.MINOR.PATCH
  • Releases are tag-triggered (v* pattern)

Metadata

Release files for reeln-native 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reeln-native 0.3.0
File Size Uploaded Provenance
reeln_native-0.3.0.tar.gz 103.2 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for reeln-native 0.3.0
File
reeln_native-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
reeln_native-0.3.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
reeln_native-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
reeln_native-0.3.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
reeln_native-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
reeln_native-0.3.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 48.2 MB

Release files / reeln_native-0.3.0.tar.gz

Download URL reeln_native-0.3.0.tar.gz
Size 103.2 kB
Tags Source
SHA-256 checksum
How to use checksums
69e1c381e2f0f5541a8f8e86be974fcd4a530ad14858ac804577c4e88214f34a
BLAKE2b-256 checksum
How to use checksums
0593761365e5a3a493c3f311e828ff4b3cfed57355f65be203c248ae8f65f8b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Release files / reeln_native-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL reeln_native-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 14.1 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
91cded3f600248171e8e08bc0794bb59661e7b6f985c271dff2046bfee0885ca
BLAKE2b-256 checksum
How to use checksums
0e20e1e9a43cc66a13f4d652f28dc89fd80ad82b78fe740bd8bfb911a16f002e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Release files / reeln_native-0.3.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL reeln_native-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Size 2.0 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
58d4983fe1a14b744b81de87f9e56266fda3fa75fe92249d363ddae0ccfb8e4c
BLAKE2b-256 checksum
How to use checksums
2860a8ddee4d775e356de0e4d4ba8f65bc47fb04ba0bf7a79c5734147b6b9c3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Release files / reeln_native-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL reeln_native-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 14.1 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
939404f4b76694e9015be90e1b8bd9ecf97753415e48e793620185eeb40ced3c
BLAKE2b-256 checksum
How to use checksums
69850eb5fd680395b922d5fe3d9d0e616505016edb0a050306f5b3416b80c71b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Release files / reeln_native-0.3.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL reeln_native-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Size 2.0 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f32af7b42a275f28226501c759edfb785494ed194a1d38e5c1fdcb0b618380e7
BLAKE2b-256 checksum
How to use checksums
cf2112f7be1c0426a1de7a49493dfa17845e61bcbda5ef54564403692ab3cd0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Release files / reeln_native-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL reeln_native-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 14.1 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1b63181009e5147028278e6b5908a92ef82112e4361f1d5f24f74dfac6d0204c
BLAKE2b-256 checksum
How to use checksums
933d514155e922a67fa6f8433b81989a24b1b70dab87bc0f645d9335d0b0ba13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Release files / reeln_native-0.3.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL reeln_native-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Size 2.0 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5315ac4cec9396dc6b299ae1bc5e6d2c43bc91f06bd6f913b5bcc176cfcdedc4
BLAKE2b-256 checksum
How to use checksums
ab9d8d60ceaa764d85846fa3e7ce97794a62f95699397e4d97bd6e59ef608e0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Security for reeln-native 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 7 files in this release have been uploaded with provenance metadata.

Select from 7 files

Attestation for reeln_native-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page