48 个版本
0.3.3 | 2023 年 7 月 18 日 |
---|---|
0.3.2 | 2023 年 3 月 7 日 |
0.3.1 | 2022 年 3 月 26 日 |
0.3.0 | 2021 年 5 月 27 日 |
0.0.3 | 2016 年 2 月 24 日 |
在 解析器实现 中排名 66
每月下载量 22,135
在 95 个 crate 中使用(15 个直接使用)
760KB
17K SLoC
Rust 对 libxml2 的封装。
此项目的主要目标是利用 libxml2 的成熟度和稳定性,同时原生 Rust XML crate 正在成熟,成为接近即插即用的替代品。
截至 crate 的 0.2.0
版本发布,有一些适度的不变性保证
- 可变性以及所有权 - 我们使用
Rc<RefCell<T>>
封装来确保 libxml2 操作在 Rust 层的运行时安全性。 - 内存安全性保证 - 特别是
Node
和Document
对象在丢弃时具有自动的记账和释放,以确保无泄漏的封装使用。 - 无线程安全性 - libxml2 的全局内存管理在以最小干预的方式线程安全地适应时是一个挑战
覆盖率:目前仅覆盖了 libxml2 的子集,欢迎贡献。我们尝试通过每个版本增加支持。
欢迎! 在这些警告下,项目的贡献者正在将生产工作迁移到 Rust,并发现继续依赖 libxml2 对于初始移植是有帮助的缓解。因此,如果您的流程尚未完全得到支持,欢迎为此 crate 贡献。
安装先决条件
在进行常规 cargo build/install 步骤之前,您需要使用原始 libxml2 代码的相关组件。这些组件可能会随着时间的推移而逐渐过时 - 如果是这样,请通过打开新的 issue/PR 来让我们知道。
Linux/Debian
在 Linux 系统上,您需要 libxml2 的开发头文件(例如 Debian 中的 libxml2-dev
),以及 pkg-config
。
MacOS
社区贡献:
$ brew install libxml2 # e.g. version 2.9.12
$ ln -s /usr/local/Cellar/libxml2/2.9.12/lib/libxml2.2.dylib /usr/local/lib/libxml-2.0.dylib
$ export LIBXML2=/usr/local/Cellar/libxml2/2.9.12/lib/pkgconfig/libxml-2.0.pc
Windows
社区贡献:
- 通过访问BuildTools手动安装构建工具C++和英文语言
- 以管理员权限启动cmd提示符,并依次执行以下命令
C:\> git clone https://github.com/microsoft/vcpkg
C:\> .\vcpkg\bootstrap-vcpkg.bat
C:\> setx /M PATH "%PATH%;c:\vcpkg" && setx VCPKGRS_DYNAMIC "1" /M
C:\> refreshenv
C:\> vcpkg install libxml2:x64-windows
C:\> vcpkg integrate install