Elias Wendland 2e80bb1d7b
Release / check-release (push) Successful in 20s
Release / build (push) Skipped
Release / package (deb) (push) Skipped
Release / package (rpm) (push) Skipped
Release / publish (push) Skipped
CI / test (push) Successful in 2m5s
docs: add detailed installation instructions for RPM and APT repositories to README
2026-07-17 16:33:57 +02:00
2026-07-17 16:03:56 +02:00
2026-07-15 18:55:50 +02:00

Convertis

Convertis 0.3 is a modular Linux CLI for routing files through independently installed conversion plugins. The base convertis package contains the engine and no converters.

Installation

Via repository

Convertis is available on GNU/Linux for Debian-based systems and Fedora/CentOS-based systems via my Gitea repository.

The repository contains the convertis engine and each official plugin as a separate package.

RPM

Add the RPM repository using the checked-in .repo file. This file configures both the package registry and the correct package-signing key.

On RedHat distros:

sudo dnf config-manager --add-repo https://git.ewenlau.net/ewenlau/convertis/raw/branch/main/repo/gitea-ewenlau.repo

On Fedora 41+:

sudo dnf config-manager addrepo --from-repofile=https://git.ewenlau.net/ewenlau/convertis/raw/branch/main/repo/gitea-ewenlau.repo

On SUSE distros:

sudo zypper addrepo -f https://git.ewenlau.net/ewenlau/convertis/raw/branch/main/repo/gitea-ewenlau.repo

Then, install the package:

On RedHat/Fedora:

sudo dnf install convertis

On SUSE distros:

sudo zypper install convertis

APT

Add the repo:

sudo install -d -m 0755 /etc/apt/keyrings
sudo curl https://git.ewenlau.net/api/packages/ewenlau/debian/repository.key -o /etc/apt/keyrings/gitea-ewenlau.asc
echo "deb [signed-by=/etc/apt/keyrings/gitea-ewenlau.asc] https://git.ewenlau.net/api/packages/ewenlau/debian debian main" | sudo tee /etc/apt/sources.list.d/gitea-ewenlau.list
sudo apt update

Then, install the package:

sudo apt install convertis

If you want to install a specific version, append =<version-number>-1. For instance, to install version 0.3.0:

sudo apt install convertis=0.3.0-1

Then install only the plugins you need. Each plugin is a separate package:

sudo apt install convertis-native-image
sudo apt install convertis-ffmpeg-video convertis-ffmpeg-audio

Convenience bundles are available:

  • convertis-ffmpeg: all FFmpeg plugins, including frame extraction and assembly.
  • convertis-image: native image, ASCII, ImageMagick, and GraphicsMagick plugins.
  • convertis-plugins-all: every official plugin.

When no installed route can perform a conversion, Convertis prints the individual package or packages that provide one.

Raw release

The release page contains a raw x86_64-unknown-linux-gnu executable and one ZIP containing all official .so plugins. Extract its plugins/ directory beside the executable. Plugins can also be placed directly beside the executable, in ~/.local/lib/convertis/plugins, or in /usr/lib/convertis/plugins.

Plugins use an exact-version Rust ABI. A plugin must have been built for the same Convertis release; incompatible libraries are rejected before loading.

Usage

convertis input.png output.ico
convertis input.mp4 frames/ --to frames
convertis frames/ output.mp4
convertis input.png output.txt --option width=120

Input formats are detected from file contents. The output extension indicates the requested target and can be overridden with --to. Use --from only when content detection cannot recognize a format.

Frame extraction creates numbered images and .convertis-frames.json, which preserves the source frame rate and timing for the frames-to-video plugin. External frame folders without metadata use lexical ordering and 30 FPS by default.

Useful inspection commands:

convertis --list-plugins
convertis --list-formats
convertis --help

Use --no-default-plugins with explicit --plugin-dir arguments to run in an isolated plugin environment.

Plugin settings use repeatable --option key=value arguments. A plugin-qualified key such as ffmpeg-frames-to-video.fps=24 can disambiguate settings in a multi-plugin route.

Building

Build the engine and every official plugin:

cargo build --release --workspace

The engine is target/release/convertis; plugins are target/release/libconvertis_*.so.

Plugin API

The workspace crate convertis-plugin-api defines the exact-version Rust trait used by official plugins. Plugin metadata is checked through a small C-compatible entry point before the Rust factory is called. The official plugin crates are the reference examples; ABI compatibility across Convertis releases is not promised.

Platforms

Version 0.3 supports 64-bit GNU/Linux. Windows and musl builds are intentionally sunset for now.

License

Convertis is licensed under GPL-3.0-only. See LICENSE.

S
Description
No description provided
Readme GPL-3.0
23 MiB
Languages
Rust 92.4%
Shell 7.6%