A C++ NMT framework that skips the kitchen-sink dependencies
Marian trains and runs neural machine translation with nothing but C++ and a GPU.

What it does
Marian is a neural machine translation framework written in pure C++ with minimal dependencies. It handles both training (multi-GPU) and inference (GPU or CPU) for deep RNN and transformer architectures. The project is named after Marian Rejewski, the Polish mathematician who cracked the Enigma cipher—an appropriately cryptic namesake for a project funded partly by IARPA.
The interesting bit
Most deep-learning frameworks accumulate dependencies like a npm project accumulates node_modules. Marian deliberately doesn’t. The “pure C++” and “minimal dependencies” claims suggest someone actually cares about build times and deployment friction in production translation pipelines.
Key highlights
- Pure C++ implementation, no Python scaffolding mentioned
- Multi-GPU training with CPU fallback for translation
- Supports both deep RNN and transformer architectures
- MIT license (not GPL, not Apache with patent clauses)
- Active CI across Ubuntu, Windows, and macOS
- Academic pedigree: published at ACL 2018, well-cited
Caveats
- The README is sparse on specifics—no benchmark numbers, no model zoo, no hardware requirements
- The older “Amun” RNN decoder lives in a separate repo; the main decoder has superseded it, but migration clarity is absent
- Documentation lives on an external website; the repo itself is basically a landing page
Verdict
Worth evaluating if you’re running NMT in production and tired of Python packaging hell. Probably overkill if you’re just fine-tuning a Hugging Face model for a weekend project.