Skip to content

Commit

Permalink
release: 3.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
joshstoik1 committed May 29, 2024
2 parents 1e32b18 + db48561 commit 3207019
Show file tree
Hide file tree
Showing 68 changed files with 1,826 additions and 1,283 deletions.
26 changes: 11 additions & 15 deletions CREDITS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Project Dependencies
Package: flaca
Version: 3.0.3
Generated: 2024-05-12 06:16:35 UTC
Version: 3.1.0
Generated: 2024-05-29 06:04:26 UTC

| Package | Version | Author(s) | License |
| ---- | ---- | ---- | ---- |
Expand All @@ -10,31 +10,28 @@
| [bitvec](https://github.com/bitvecto-rs/bitvec) | 1.0.1 | | MIT |
| [bumpalo](https://github.com/fitzgen/bumpalo) | 3.16.0 | [Nick Fitzgerald](mailto:fitzgen@gmail.com) | Apache-2.0 or MIT |
| [bytecount](https://github.com/llogiq/bytecount) | 0.6.8 | [Andre Bogus](mailto:bogusandre@gmail.de) and [Joshua Landau](mailto:joshua@landau.ws) | Apache-2.0 or MIT |
| [bytemuck](https://github.com/Lokathor/bytemuck) | 1.15.0 | [Lokathor](mailto:zefria@gmail.com) | Apache-2.0, MIT, or Zlib |
| [bytemuck](https://github.com/Lokathor/bytemuck) | 1.16.0 | [Lokathor](mailto:zefria@gmail.com) | Apache-2.0, MIT, or Zlib |
| [cfg-if](https://github.com/alexcrichton/cfg-if) | 1.0.0 | [Alex Crichton](mailto:alex@alexcrichton.com) | Apache-2.0 or MIT |
| [crc32fast](https://github.com/srijs/rust-crc32fast) | 1.4.0 | [Sam Rijs](mailto:srijs@airpost.net) and [Alex Crichton](mailto:alex@alexcrichton.com) | Apache-2.0 or MIT |
| [crossbeam-deque](https://github.com/crossbeam-rs/crossbeam) | 0.8.5 | | Apache-2.0 or MIT |
| [crossbeam-epoch](https://github.com/crossbeam-rs/crossbeam) | 0.9.18 | | Apache-2.0 or MIT |
| [crossbeam-utils](https://github.com/crossbeam-rs/crossbeam) | 0.8.19 | | Apache-2.0 or MIT |
| [crc32fast](https://github.com/srijs/rust-crc32fast) | 1.4.2 | [Sam Rijs](mailto:srijs@airpost.net) and [Alex Crichton](mailto:alex@alexcrichton.com) | Apache-2.0 or MIT |
| [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) | 0.5.13 | | Apache-2.0 or MIT |
| [crossbeam-utils](https://github.com/crossbeam-rs/crossbeam) | 0.8.20 | | Apache-2.0 or MIT |
| [ctrlc](https://github.com/Detegr/rust-ctrlc.git) | 3.4.4 | [Antti Keränen](mailto:detegr@gmail.com) | Apache-2.0 or MIT |
| [dactyl](https://github.com/Blobfolio/dactyl) | 0.7.0 | [Blobfolio, LLC.](mailto:hello@blobfolio.com) | WTFPL |
| [dactyl](https://github.com/Blobfolio/dactyl) | 0.7.1 | [Blobfolio, LLC.](mailto:hello@blobfolio.com) | WTFPL |
| [dowser](https://github.com/Blobfolio/dowser) | 0.9.0 | [Blobfolio, LLC.](mailto:hello@blobfolio.com) | WTFPL |
| [either](https://github.com/rayon-rs/either) | 1.11.0 | bluss | Apache-2.0 or MIT |
| [equivalent](https://github.com/cuviper/equivalent) | 1.0.1 | | Apache-2.0 or MIT |
| [fastrand](https://github.com/smol-rs/fastrand) | 2.1.0 | [Stjepan Glavina](mailto:stjepang@gmail.com) | Apache-2.0 or MIT |
| flapfli | 3.1.0 | [Josh Stoik](mailto:josh@blobfolio.com) | WTFPL |
| [funty](https://github.com/myrrlyn/funty) | 2.0.0 | [myrrlyn](mailto:self@myrrlyn.dev) | MIT |
| [fyi_msg](https://github.com/Blobfolio/fyi) | 0.13.4 | [Blobfolio, LLC.](mailto:hello@blobfolio.com) | WTFPL |
| [fyi_msg](https://github.com/Blobfolio/fyi) | 0.13.6 | [Blobfolio, LLC.](mailto:hello@blobfolio.com) | WTFPL |
| [hashbrown](https://github.com/rust-lang/hashbrown) | 0.14.5 | [Amanieu d'Antras](mailto:amanieu@gmail.com) | Apache-2.0 or MIT |
| [indexmap](https://github.com/indexmap-rs/indexmap) | 2.2.6 | | Apache-2.0 or MIT |
| [libc](https://github.com/rust-lang/libc) | 0.2.154 | The Rust Project Developers | Apache-2.0 or MIT |
| [libc](https://github.com/rust-lang/libc) | 0.2.155 | The Rust Project Developers | Apache-2.0 or MIT |
| [libdeflate-sys](https://github.com/adamkewley/libdeflater) | 1.20.0 | [Adam Kewley](mailto:contact@adamkewley.com) | Apache-2.0 |
| [libdeflater](https://github.com/adamkewley/libdeflater) | 1.20.0 | [Adam Kewley](mailto:contact@adamkewley.com) | Apache-2.0 |
| [log](https://github.com/rust-lang/log) | 0.4.21 | The Rust Project Developers | Apache-2.0 or MIT |
| [mozjpeg-sys](https://github.com/kornelski/mozjpeg-sys.git) | 2.1.0 | [Kornel](mailto:kornel@geekhood.net) | IJG AND Zlib AND BSD-3-Clause |
| [mozjpeg-sys](https://github.com/kornelski/mozjpeg-sys.git) | 2.2.0 | [Kornel](mailto:kornel@geekhood.net) | IJG AND Zlib AND BSD-3-Clause |
| [oxipng](https://github.com/shssoichiro/oxipng) | 9.1.1 | [Joshua Holmer](mailto:jholmer.in@gmail.com) | MIT |
| [radium](https://github.com/bitvecto-rs/radium) | 0.7.0 | [Nika Layzell](mailto:nika@thelayzells.com) and [myrrlyn](mailto:self@myrrlyn.dev) | MIT |
| [rayon](https://github.com/rayon-rs/rayon) | 1.10.0 | [Niko Matsakis](mailto:niko@alum.mit.edu) and [Josh Stone](mailto:cuviper@gmail.com) | Apache-2.0 or MIT |
| [rayon-core](https://github.com/rayon-rs/rayon) | 1.12.1 | [Niko Matsakis](mailto:niko@alum.mit.edu) and [Josh Stone](mailto:cuviper@gmail.com) | Apache-2.0 or MIT |
| [rgb](https://github.com/kornelski/rust-rgb) | 0.8.37 | [Kornel Lesiński](mailto:kornel@geekhood.net) | MIT |
| [rustc-hash](https://github.com/rust-lang-nursery/rustc-hash) | 1.1.0 | The Rust Project Developers | Apache-2.0 or MIT |
| [tap](https://github.com/myrrlyn/tap) | 1.0.1 | [Elliott Linder](mailto:elliott.darfink@gmail.com) and [myrrlyn](mailto:self@myrrlyn.dev) | MIT |
Expand All @@ -44,4 +41,3 @@
| [write_atomic](https://github.com/Blobfolio/write_atomic) | 0.5.0 | [Blobfolio, LLC.](mailto:hello@blobfolio.com) | WTFPL |
| [wyz](https://github.com/myrrlyn/wyz) | 0.5.1 | [myrrlyn](mailto:self@myrrlyn.dev) | MIT |
| [zerocopy](https://github.com/google/zerocopy) | 0.7.34 | [Joshua Liebow-Feeser](mailto:joshlf@google.com) | Apache-2.0, BSD-2-Clause, or MIT |
| [zopflipng](https://github.com/google/zopfli) | | Google | Apache-2.0 |
138 changes: 5 additions & 133 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,138 +1,10 @@
[package]
name = "flaca"
version = "3.0.3"
license = "WTFPL"
authors = ["Josh Stoik <josh@blobfolio.com>"]
edition = "2021"
description = "Brute-force, lossless JPEG and PNG compression."
readme = "README.md"
publish = false
exclude = [
".gitignore",
".righteous-sandbox.json",
"doc",
"justfile",
"release",
[workspace]
resolver = "2"
members = [
"flaca",
"flapfli",
]

[package.metadata.deb]
maintainer = "Josh Stoik <hello@blobfolio.com>"
copyright = "2024, Blobfolio, LLC <hello@blobfolio.com>"
license-file = ["./LICENSE", "0"]
extended-description = """\n\
Flaca is a CLI tool for x86-64 Linux machines that simplifies the task of losslessly compressing JPEG and PNG images for use on the web.\n\
.\n\
Under the hood, it uses MozJPEG for lossless JPEG (re)compression, and Oxipng/Zopflipng for lossless PNG (re)compression."""
revision = "1"
depends = "$auto"
section = "graphics"
assets = [
["./target/release/flaca", "usr/bin/", "755"],
["./release/completions/flaca.bash", "etc/bash_completion.d/", "644"],
["./release/man/flaca.1.gz", "usr/share/man/man1/", "644"],
]

[package.metadata.bashman]
name = "Flaca"
bash-dir = "./release/completions"
man-dir = "./release/man"
credits-dir = "./"

[[package.metadata.bashman.switches]]
short = "-h"
long = "--help"
description = "Print help information and exit."

[[package.metadata.bashman.switches]]
long = "--no-jpeg"
description = "Skip JPEG images."

[[package.metadata.bashman.switches]]
long = "--no-png"
description = "Skip PNG images."

[[package.metadata.bashman.switches]]
short = "-p"
long = "--progress"
description = "Show pretty progress while minifying."

[[package.metadata.bashman.switches]]
short = "-V"
long = "--version"
description = "Print version information and exit."

[[package.metadata.bashman.options]]
short = "-j"
label = "<NUM>"
description = "Limit parallelization to this many threads (instead of giving each logical core its own image to work on). If negative, the value will be subtracted from the total number of logical cores."
path = false

[[package.metadata.bashman.options]]
short = "-l"
long = "--list"
label = "<FILE>"
description = "Read (absolute) image and/or directory paths from this text file — or STDIN if '-' — one entry per line, instead of or in addition to (actually trailing) <PATH(S)>."
path = true

[[package.metadata.bashman.options]]
short = "-z"
label = "<NUM>"
description = "Run NUM lz77 backward/forward iterations during zopfli PNG encoding passes. More iterations yield better compression (up to a point), but require *significantly* longer processing times. In practice, values beyond 500 are unlikely to save more than a few bytes, and could take *days* to complete! Haha. [default: 20 or 60, depending on the file size]"
path = false

[[package.metadata.bashman.arguments]]
label = "<PATH(s)…>"
description = "One or more image and/or directory paths to losslessly compress."

[[package.metadata.bashman.sections]]
name = "EARLY EXIT"
inside = false
lines = [
"Press CTRL+C once to quit as soon as the already-in-progress operations have",
"finished (ignoring any pending images still in the queue).",
"",
"Press CTRL+C a second time if you need to exit IMMEDIATELY, but note that doing",
"so may leave artifacts (temporary files) behind, and in rare cases, lead to",
"image corruption.",
]

[[package.metadata.bashman.sections]]
name = "OPTIMIZERS"
inside = true
items = [
[ "MozJPEG", "<https://github.com/mozilla/mozjpeg>" ],
[ "Oxipng", "<https://github.com/shssoichiro/oxipng>" ],
[ "Zopflipng", "<https://github.com/google/zopfli>" ]
]

[dependencies]
argyle = "0.7.*"
bumpalo = "=3.16.0"
crc32fast = "1.4.*"
ctrlc = "=3.4.4"
dactyl = "0.7.*"
dowser = "0.9.*"
libc = "0.2.*"
rayon = "1.10.*"
write_atomic = "0.5.*"

[dependencies.fyi_msg]
version = "0.13.*"
features = [ "progress" ]

[dependencies.mozjpeg-sys]
version = "=2.1.0"
features = [ "jpegtran" ]

[dependencies.oxipng]
version = "=9.1.1"
default-features = false

[build-dependencies]
bindgen = "0.69.*"
cc = "1.0.*"
dowser = "0.9.*"

[profile.release]
lto = true
codegen-units = 1
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,10 @@ The following flags and options are available:
| `-h` | `--help` | | Print help information and exit. |
| `-j` | | `<NUM>` | Limit parallelization to this many threads (instead of using all logical cores). |
| `-l` | `--list` | `<FILE>` | Read (absolute) image and/or directory paths from this text file — or STDIN if "-" — one entry per line, instead of or in addition to the trailing `<PATH(S)>`. |
| | `--max-resolution` | `<NUM>` | Skip images containing more than `<NUM>` total pixels. |
| | `--no-jpeg` | | Skip JPEG images. |
| | `--no-png` | | Skip PNG Images. |
| `-z` | `--zopfli-iterations` | Override the number of zopfli iterations when compressing PNGs. |
| `-z` | `--zopfli-iterations` | `<NUM>` | Override the number of zopfli iterations when compressing PNGs. |
| `-p` | `--progress` | | Show pretty progress while minifying. |
| `-V` | `--version` | | Print version information and exit. |

Expand Down
140 changes: 140 additions & 0 deletions flaca/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
[package]
name = "flaca"
version = "3.1.0"
license = "WTFPL"
authors = ["Josh Stoik <josh@blobfolio.com>"]
edition = "2021"
description = "Brute-force, lossless JPEG and PNG compression."
readme = "README.md"
publish = false
exclude = [
".gitignore",
".righteous-sandbox.json",
"doc",
"justfile",
"release",
]

[package.metadata.deb]
maintainer = "Josh Stoik <hello@blobfolio.com>"
copyright = "2024, Blobfolio, LLC <hello@blobfolio.com>"
license-file = ["../LICENSE", "0"]
extended-description = """\n\
Flaca is a CLI tool for x86-64 Linux machines that simplifies the task of losslessly compressing JPEG and PNG images for use on the web.\n\
.\n\
Under the hood, it uses MozJPEG for lossless JPEG (re)compression, and Oxipng/Zopflipng for lossless PNG (re)compression."""
revision = "1"
depends = "$auto"
section = "graphics"
assets = [
["../target/release/flaca", "usr/bin/", "755"],
["../release/completions/flaca.bash", "etc/bash_completion.d/", "644"],
["../release/man/flaca.1.gz", "usr/share/man/man1/", "644"],
]

[package.metadata.bashman]
name = "Flaca"
bash-dir = "../release/completions"
man-dir = "../release/man"
credits-dir = "../"

[[package.metadata.bashman.switches]]
short = "-h"
long = "--help"
description = "Print help information and exit."

[[package.metadata.bashman.switches]]
long = "--no-jpeg"
description = "Skip JPEG images."

[[package.metadata.bashman.switches]]
long = "--no-png"
description = "Skip PNG images."

[[package.metadata.bashman.switches]]
short = "-p"
long = "--progress"
description = "Show pretty progress while minifying."

[[package.metadata.bashman.switches]]
short = "-V"
long = "--version"
description = "Print version information and exit."

[[package.metadata.bashman.options]]
short = "-j"
label = "<NUM>"
description = "Limit parallelization to this many threads (instead of giving each logical core its own image to work on). If negative, the value will be subtracted from the total number of logical cores."
path = false

[[package.metadata.bashman.options]]
short = "-l"
long = "--list"
label = "<FILE>"
description = "Read (absolute) image and/or directory paths from this text file — or STDIN if '-' — one entry per line, instead of or in addition to (actually trailing) <PATH(S)>."
path = true

[[package.metadata.bashman.options]]
long = "--max-resolution"
label = "<NUM>"
description = "Skip images containing more than <NUM> total pixels to avoid potential OOM errors during decompression. [default: ~4.29 billion]"
path = false

[[package.metadata.bashman.options]]
short = "-z"
label = "<NUM>"
description = "Run NUM lz77 backward/forward iterations during zopfli PNG encoding passes. More iterations yield better compression (up to a point), but require *significantly* longer processing times. In practice, values beyond 500 are unlikely to save more than a few bytes, and could take *days* to complete! Haha. [default: 20 or 60, depending on the file size]"
path = false

[[package.metadata.bashman.arguments]]
label = "<PATH(s)…>"
description = "One or more image and/or directory paths to losslessly compress."

[[package.metadata.bashman.sections]]
name = "EARLY EXIT"
inside = false
lines = [
"Press CTRL+C once to quit as soon as the already-in-progress operations have",
"finished (ignoring any pending images still in the queue).",
"",
"Press CTRL+C a second time if you need to exit IMMEDIATELY, but note that doing",
"so may leave artifacts (temporary files) behind, and in rare cases, lead to",
"image corruption.",
]

[[package.metadata.bashman.sections]]
name = "OPTIMIZERS"
inside = true
items = [
[ "MozJPEG", "<https://github.com/mozilla/mozjpeg>" ],
[ "Oxipng", "<https://github.com/shssoichiro/oxipng>" ],
[ "Zopflipng", "<https://github.com/google/zopfli>" ]
]

[dependencies]
argyle = "0.7.*"
crossbeam-channel = "=0.5.*"
ctrlc = "=3.4.4"
dactyl = "0.7.*"
dowser = "0.9.*"
write_atomic = "0.5.*"

[dependencies.flapfli]
version = "*"
path = "../flapfli"

[dependencies.fyi_msg]
version = "0.13.*"
features = [ "progress" ]

[dependencies.mozjpeg-sys]
version = "=2.2.0"
features = [ "jpegtran" ]

[dependencies.oxipng]
version = "=9.1.1"
default-features = false
features = [ "freestanding" ]

[build-dependencies]
dowser = "0.9.*"
1 change: 1 addition & 0 deletions flaca/README.md
Loading

0 comments on commit 3207019

Please sign in to comment.