MIT License

项目介绍

JayXon/Leanify 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 MIT License 许可证,目前获得 851 个 Star、79 次 Fork。

仓库全名
JayXon/Leanify
开源许可证
MIT License
Star 数
851
Fork 数
79
未关闭 Issue
20

README 摘要

======= Leanify is a lightweight lossless file minifier/optimizer. It removes unnecessary data (debug information, comments, metadata, etc.) and recompress the file to reduce file size. It will not reduce image quality at all. Features Support recursive minifying. (e.g. a [PNG] inside an [APK] inside a [ZIP]) Support a wide variety of file formats. Lightweight, one file, under 1MB, no external dependency. Everything…

完整内容见 GitHub 原始 README 或本页 。

常见问题

Leanify 用什么语言开发?

主要使用 C++ 编写,采用 MIT License 许可证,目前有 851 个 Star。

Leanify 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 Leanify 的源码?

可以直接克隆仓库:git clone https://github.com/JayXon/Leanify.git,默认分支为 master;安装与运行步骤见仓库 README。

Leanify 最近还在维护吗?

仓库最近一次更新为 6月5日,当前有 20 个未关闭 Issue;Star 数为 851,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

lightweight lossless file minifier/optimizer

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
1042
价值分
536
活跃状态
活跃

语言占比

Batchfile
C
C++
Makefile

Release

README

Leanify GitHub Actions CI Windows Build status Download Latest Release GitHub license

Leanify is a lightweight lossless file minifier/optimizer. It removes unnecessary data (debug information, comments, metadata, etc.) and recompress the file to reduce file size. It will not reduce image quality at all.

Features

  • Support recursive minifying. (e.g. a PNG inside an APK inside a ZIP)
  • Support a wide variety of file formats.
  • Lightweight, one file, under 1MB, no external dependency.
  • Everything is done in memory, no temporary files.
  • Cross-Platform, support Windows, Linux, Mac.
  • Support traverse directory recursively.
  • Ability to identify file format by its data instead of name.

Disclaimer

I’m not respossible for any consequence of using Leanify.

PLEASE BACKUP THE FILE BEFORE USING LEANIFY!

File Formats

APK file (.apk)

It is based on ZIP.

Note that modifying files inside APK will break digital signature. To install it, you’ll have to sign it again.

If you don’t want to modify any files inside APK, use -d 1 option.

Comic book archive (.cbt, .cbz)

cbt is based on tar. cbz is based on ZIP.

Microsoft Office document 2007-2013 (.docx, .xlsx, .pptx)

It is based on XML and ZIP.

Office document 1997-2003 (.doc, .xls, .ppt) is not supported.

Data URI (.html .htm .js .css)

Looks for data:image/*;base64 and leanify base64 encoded embedded image.

Design Web Format (.dwf, dwfx)

It is based on ZIP.

EPUB file (.epub)

It is based on ZIP.

FictionBook (.fb2, .fb2.zip)

It is based on XML.

Leanify embedded images.

GFT file (.gft)

It’s an image container format found in Tencent QQ.

Leanify the image inside.

gzip file (.gz, .tgz)

Leanify file inside and recompress deflate stream.

Remove all optional section: FEXTRA, FNAME, FCOMMENT, FHCRC.

Icon file (.ico)

Convert 256x256 BMP to PNG.

Leanify PNG inside, if any.

Java archive (.jar)

It is based on ZIP.

JPEG image (.jpeg, .jpg, .jpe, .jif, .jfif, .jfi, .thm)

Remove all application markers (e.g. Exif (use --keep-exif to keep it), ICC profile, XMP) and comments.

Optimize with mozjpeg.

Lua object file (.lua, .luac)

Remove all debugging information:

  • Source name
  • Line defined and last line defined
  • Source line position list
  • Local list
  • Upvalue list
OpenDocument (.odt, .ods, .odp, .odb, .odg, .odf)

It is based on XML and ZIP.

OpenRaster (.ora)

It is based on OpenDocument and PNG.

PE file (.exe, .dll, .ocx, .scr, .cpl)

Leanify embedded resource.

Remove Relocation Table in executable file.

Remove undocumented Rich Header.

Overlap PE Header and DOS Header.

PNG image (.png, .apng)

Remove all ancillary chunks except for:

  • tRNS: transparent information
  • fdAT, fcTL, acTL: These chunks are used by APNG
  • npTc: Android 9Patch images (*.9.png)

Optimize with ZopfliPNG.

RDB archive (.rdb)

It is an archive format found in Tencent QQ.

Leanify all files inside.

Flash file (.swf)

Leanify embedded images.

Recompress it with LZMA.

Remove Metadata Tag.

SVG image (.svg, .svgz)

It is based on XML.

Remove metadata.

Shrink spaces in attributes.

Remove empty attributes.

Remove empty text element and container element.

tar archive (.tar)

Leanify all files inside.

XML document (.xml, .xsl, .xslt)

Remove all comments, unnecessary spaces, tabs, line breaks.

XPInstall (.xpi)

It is based on ZIP.

Note that modifying files inside xpi will break digital signature. To install it, you’ll have to sign it again.

XPS document (.xps, .oxps)

It is based on XML and ZIP.

ZIP archive (.zip)

Leanify all files inside and recompress deflate stream using Zopfli.

Use STORE method if DEFLATE makes file larger.

Remove extra field in Local file header.

Remove Data descriptor structure, write those information to Local file header.

Remove extra field and file comment in Central directory file header.

Remove comment in End of central directory record.

Downloads

Stable Releases

Windows Nightly Build

Usage

Usage: leanify [options] paths
  -i, --iteration <iteration>   More iterations produce better result, but
                                  use more time, default is 15.
  -d, --max_depth <max depth>   Maximum recursive depth, unlimited by default.
                                  Set to 1 will disable recursive minifying.
  -f, --fastmode                Fast mode, no recompression.
  -q, --quiet                   No output to stdout.
  -v, --verbose                 Verbose output.
  -p, --parallel                Distribute all tasks to all CPUs.
  --keep-exif                   Do not remove Exif.

Compiling

Windows
  • Visual Studio 2015+

    Use Leanify.vcxproj

  • gcc 5+

    build_gcc.bat or mingw32-make

Linux, Mac

gcc 5+ or clang 3.6+

make

评论

暂无评论