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.