Elias Wendland fb6b937818
Release / check-release (push) Successful in 15s
Release / build (push) Skipped
Release / package (deb) (push) Skipped
Release / package (rpm) (push) Skipped
Release / publish (push) Skipped
CI / test (push) Failing after 45s
chore: enable git LFS in CI and add AVIF to PNG package recommendation test
2026-07-17 16:02:26 +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

Install the engine first:

sudo apt install convertis
# or
sudo dnf install convertis

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%