Title: MAT is dead, long live MAT2
Date: 2018-06-05 14:00

Two years ago, I wrote that [mat](https://mat.boum.org) was [on
hold]({filename}/metadata/mat_hold.md) for health-related reasons. I'm now
feeling better, so I thought about rewriting it in Python3. It's living on its
own [git repository](https://0xacab.org/jvoisin/mat2), thanks to the wonderful
people behind [0xacab.org](https://0xacab.org). Currently, the library and the
command line interface are offering the same level of features (and maybe a bit
more) than the original MAT.

It also comes with a shiny logo:

[![logo]({static}/images/mat2/mat2_logo.png)](https://0xacab.org/jvoisin/mat2)

It's currently supporting several fileformats:

- image/png (.png)
- application/pdf (.pdf)
- application/x-bittorrent (.torrent)
- audio/mpeg (.mp2, .mp3, .mpga, .mpega, .m4a)
- audio/ogg (.oga, .ogg, .opus, .spx)
- audio/flac (.flac)
- image/jpeg (.jpe, .jpeg, .jpg)
- image/tiff (.tif, .tiff)
- image/x-ms-bmp (.bmp)
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.xlsx)
- application/vnd.openxmlformats-officedocument.wordprocessingml.document (.docx)
- application/vnd.openxmlformats-officedocument.presentationml.presentation (.pptx)
- application/vnd.oasis.opendocument.text (.odt)
- application/vnd.oasis.opendocument.chart (.odc)
- application/vnd.oasis.opendocument.image (.odi)
- application/vnd.oasis.opendocument.presentation (.odp)
- application/vnd.oasis.opendocument.graphics (.odg)
- application/vnd.oasis.opendocument.spreadsheet (.ods)
- application/vnd.oasis.opendocument.formula (.odf)

and I'm planning to [add more](https://0xacab.org/jvoisin/mat2/issues).

Since <abbr title="Graphical User Interface">GUI</abbr> are hard (everyone
complained about MAT's one), I'm not planning to write one any time soon.
Odds are that I'll write file manager extensions instead, to provide something
like `right click → remove metadata`.

The code is cleaner and more modern (hurray for Python3), using (and
[enforcing](http://mypy-lang.org)) [type
hints](https://docs.python.org/3/library/typing.html),
[introspection](https://0xacab.org/jvoisin/mat2/blob/master/libmat2/parser_factory.py),
[functional style constructions]( https://docs.python.org/3/howto/functional.html ),
… I thought about using something else than Python3, like Go, Rust, C++, …
since my love for Python faded out, but unfortunately, it's
the only language that I'm fluent in that can parse, process, manipulate
and modify a significant number of different fileformats, from rendering PDF
onto Cairo surfaces, to removing thumbnails in ogg tracks, in a simple and
kinda-secure way.

If everything goes as planned, a first stable release should happen in a couple
of months, and a second one with file-manager integration before the end of
2018.

As usual, help is [more than welcome](https://0xacab.org/jvoisin/mat2/issues?label_name%5B%5D=good+first+issue).
