pint 🍺
A (P)iet (Int)erpreter with a builtin png-decoder.
Piet is a programming language in which programs look like abstract paintings. The language is named after Piet Mondrian, who pioneered the field of geometric abstract art.
Installation
cargo install pint
or you can clone this repo and build it from source
Usage
pint some_test.png
The codel-size is inferred automatically. You can also pass it manually:
pint some_test.png -c <codel_size>
Since the png-decoder is built from scratch it only implements the most common Png color-types TruecolorRGB and Indexed. There is currently no support for gifs.
Tests
Typing make shows you the options for this crate.
unit-tests
$ make unit_test
or
$ cargo t
There also integration tests that check the result of the test-images located in tests/fixtures
$ make integration_tests
or
$ bash tests/integration_tests
Contribution
I would appreciate any kind of contribution (as long as the tests pass :)) or feedback since this is my first time writing rust. Maybe there is somebody willing to finish the png decoder to support all kinds of pngs