diff --git a/.travis.yml b/.travis.yml index 8c91a741..e229abbf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ language: rust rust: + - 1.6.0 - stable - beta - nightly -matrix: - allow_failures: - - rust: nightly diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index 4b8ba68d..00000000 --- a/CHANGELOG +++ /dev/null @@ -1,8 +0,0 @@ -v 0.0.1 (unreleased) - - Initial alpha release - - Reduce color type - - Recompress with zlib - - Multithreading - - Strip headers - - Backup file before writing - - Write to stdout diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..4eee681c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,8 @@ +v 0.1.0 + - Initial beta release + - Reduce color type and bit depth + - Recompress with zlib + - Multithreading + - Strip headers option + - Backup file before writing option + - Write to stdout option diff --git a/Cargo.toml b/Cargo.toml index 03a0d395..751ef6f3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxipng" -version = "0.0.1" +version = "0.1.0" authors = ["Joshua Holmer "] [dependencies] diff --git a/README.md b/README.md index f902f05d..f7f3ab99 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,34 @@ # OxiPng [![Build Status](https://travis-ci.org/shssoichiro/oxipng.svg)](https://travis-ci.org/shssoichiro/oxipng) +[![Coverage Status](https://coveralls.io/repos/github/shssoichiro/oxipng/badge.svg?branch=master)](https://coveralls.io/github/shssoichiro/oxipng?branch=master) ## Overview -OxiPng is a PNG compression optimizer. **Note:** This package is not yet complete. DO NOT use on any files without backing them up first. +OxiPng is a lossless PNG compression optimizer. -In the typical use case, OxiPng recompresses PNG image files -losslessly and performs PNG integrity checks and corrections. -Future implementation of other features is planned. +**Note:** This package should be considered a beta. Although there are many tests in place, +there is still a chance of data loss or corruption. You should backup your files before +using this tool, unless you are very brave. -## History +If you encounter an issue, please report it via the GitHub issues tab. Include as many details +as possible. -OxiPng began as a completely rewrite of the OptiPNG project, -which is assumed to be dead as no commit has been made to it since 2013. -The name has been changed to avoid confusion and potential legal issues. +## Installing -The core goal of rewriting OptiPNG was to implement multithreading, -which would be very difficult to do within the existing C codebase of OptiPNG. -This also served as an opportunity to choose a more modern, safer language (Rust). +OxiPng can be installed from Cargo, via the following command: +``` +cargo install oxipng +``` -## Building - -Building OxiPng can be done using the latest stable or nightly Rust with Cargo installed, as follows: +Alternatively, OxiPng can be built from source using the latest stable or nightly Rust: ``` git clone https://github.com/shssoichiro/oxipng.git cd oxipng cargo build --release cp target/release/oxipng /usr/local/bin ``` + Please note that zlib is a required build dependency. OxiPng should work with any 1.x version of zlib, but you are advised to use the latest version (currently 1.2.8) for security and bug fixes. @@ -52,19 +52,29 @@ to give any extra compression gains and is not recommended. PNG interlacing on any images that are processed. `-i 0` will remove interlacing from all processed images. Not specifying either will keep the same interlacing state as the input image. Note: Interlacing can add 25-50% to the size of an optimized image. Only use -it if you have a good reason. +it if you have a good reason. (*Not Yet Implemented*) * Strip: Used to remove metadata info from processed images. Used via `--strip` or `-s`. Can save a few kilobytes if you don't need the metadata. More advanced options can be found by running `oxipng -h`. +## History + +OxiPng began as a completely rewrite of the OptiPNG project, +which is assumed to be dead as no commit has been made to it since 2013. +The name has been changed to avoid confusion and potential legal issues. + +The core goal of rewriting OptiPNG was to implement multithreading, +which would be very difficult to do within the existing C codebase of OptiPNG. +This also served as an opportunity to choose a more modern, safer language (Rust). + ## Contributing Any contributions are welcome and will be accepted via pull request on GitHub. Bug reports can be filed via GitHub issues. If you have the capability to submit a fix with the bug report, it is preferred that you do so via pull request, however you do not need to be a Rust programmer to -submit a bug report. Other contributions (such as improving documentation or translations) -are also welcome via GitHub. +contribute. Other contributions (such as improving documentation or translations) are also +welcome via GitHub. ## License