#png #static #bindings #image-processing #rudimentary #libpng #vendoring

sys libpng-vendored-sys

帮助包,用于将'libpng'作为静态库和基本的FFI绑定进行存根

3个版本

0.1.2 2024年4月2日
0.1.1 2024年3月31日
0.1.0 2024年3月31日

#559 in 图像

Download history 388/week @ 2024-03-31 15/week @ 2024-04-07 1/week @ 2024-04-14 4/week @ 2024-05-19

每月99次下载

MIT/Apache

545KB
10K SLoC

C 5.5K SLoC // 0.2% comments Rust 2.5K SLoC // 0.0% comments Shell 887 SLoC // 0.2% comments M4 748 SLoC // 0.2% comments AWK 79 SLoC // 0.3% comments Python 41 SLoC // 0.1% comments Automake 27 SLoC // 0.2% comments GNU Style Assembly 20 SLoC // 0.1% comments C++ 14 SLoC // 0.1% comments Batch 6 SLoC

libpng-vendored-sys

Cargo包,用于编译libpng并将其作为静态库存根。

该包的主要目标是提供静态库,以便与其他C代码链接,如Leptonica的版本。此包仅提供基本的FFI绑定。更复杂的绑定将在单独的包中提供。如果您需要将libpng与Rust代码直接绑定,则应编写自己的绑定。

提供的版本

通过libpng-src编译和存根版本为1.6.43的libpng。

当前支持的操作系统和目标

预期适用于

  • Linux: x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu(尚不支持交叉编译)
  • Windows: x86_64-pc-windows-msvc, aarch644-pc-windows-msvc(尚不支持交叉编译)
  • macOS: x86_64-apple-darwin, aarch64-apple-darwin
  • iOS,包括模拟器(从macOS主机交叉编译):x86_64-apple-ios, aarch64-apple-ios, aarch64-apple-ios-sim

在上传之前已对所有目标进行测试,但未对aarch64-unknown-linux-gnuaarch64-pc-windows-msvc进行测试。

zlib / libz-sys依赖关系

libpng本身依赖于zlib(或libz)C库。该包允许以三种不同的方式链接到zlib,这些方式根据功能区分。

  1. link-libz默认 功能。使用具有默认功能的 zlib-sys 包。如果使用 zlib,则会在系统中查找 zlib 的版本,并以动态或静态方式链接。通常这已经足够,但如果您的最终 cargo 库是静态构建的,则可能会出现 zlib 未链接的情况。
  2. link-libz-static 功能。此功能强制 libz-sys crate 在所有情况下都进行静态链接。覆盖更多用例,但会增加生成的文件大小。
  3. 在 Cargo 构建脚本或通过原生工具中进行手动 zlib / libz 链接时,请使用 --no-default-features

宿主依赖项

参见 libpng-src

待办事项

  • 支持 Android 的交叉编译;

作者

Rust 代码和脚本: Alexandr (Alex) Lambov [email protected],© 2024

libpng - 请参阅 http://www.libpng.org/pub/png/libpng.html

依赖项

~0.4–255KB