13 个版本 (6 个稳定版本)
1.4.0 | 2024年4月12日 |
---|---|
1.3.0 | 2024年1月19日 |
1.1.0 | 2023年11月4日 |
1.0.1 | 2023年2月26日 |
0.1.0 | 2021年3月10日 |
在 图像 中排名第 83
每月下载量 2,666
在 9 个 crate 中使用 (通过 tesseract-plumbing)
28KB
560 行
leptonica-plumbing
Crate 用于暴露 leptonica-sys api 的安全版本。
此设计旨在以安全的方式暴露 Leptonica 的 C API。
通过偏离 API 来增加价值不是目标。这留给构建在 leptonica-plumbing
之上的库。
动机
我是 leptess 和 tesseract-rs 的维护者。
我发现它们与 leptonica-sys 和 tesseract-sys 的交互有很多重复。在 leptess
和 tesseract-rs
中有多层抽象使得推理其内存安全性变得困难。
拥有一个简单的安全层可以提高上述库的正确性和可维护性。
测试
为了测试内存泄漏,请使用 valgrind
进行测试。
cargo test --release && valgrind --leak-check=yes --error-exitcode=1 --leak-check=full --show-leak-kinds=all "$(find target/*/deps/ -executable -name 'leptonica_plumbing-*')"
您可能会发现 Leptonica 总是泄漏 16B 的内存。
为了使用手动编译的 Leptonica 进行测试,请使用额外的环境变量
LD_LIBRARY_PATH="$(pwd)/../../DanBloomberg/leptonica/local/lib" PKG_CONFIG_PATH="$(pwd)/../../DanBloomberg/leptonica/local/lib/pkgconfig" cargo test
这两个可以组合使用
LD_LIBRARY_PATH="$(pwd)/../../DanBloomberg/leptonica/local/lib" PKG_CONFIG_PATH="$(pwd)/../../DanBloomberg/leptonica/local/lib/pkgconfig" bash -c 'cargo test --release && valgrind --leak-check=yes --error-exitcode=1 --leak-check=full --show-leak-kinds=all "$(find target/*/deps/ -executable -name 'leptonica_plumbing-*')"'
依赖关系
~1.2–3.5MB
~71K SLoC