9 个版本

0.3.0 2023年7月14日
0.2.0 2022年5月6日
0.1.0 2022年4月28日
0.0.5 2022年4月27日

#695 in 构建工具

Download history 1848/week @ 2024-03-14 1570/week @ 2024-03-21 1380/week @ 2024-03-28 1249/week @ 2024-04-04 1892/week @ 2024-04-11 1335/week @ 2024-04-18 1702/week @ 2024-04-25 1249/week @ 2024-05-02 1965/week @ 2024-05-09 1477/week @ 2024-05-16 1349/week @ 2024-05-23 1868/week @ 2024-05-30 1359/week @ 2024-06-06 1754/week @ 2024-06-13 1566/week @ 2024-06-20 1546/week @ 2024-06-27

6,794 每月下载
3 个 Crates 中使用(通过 hdrs

Apache-2.0

2MB
49K SLoC

C 49K SLoC // 0.1% comments Rust 593 SLoC // 0.0% comments

hdfs-sys ─ 构建状态 最新版本

绑定到 HDFS 本地 C API。

直接使用这些绑定很无聊且容易出错,如果可能,请使用 hdrs

支持的平台

  • Linux
  • macOS
  • Windows

支持的版本

要针对 libhdfs 的版本,启用以下 Cargo 功能之一

  • hdfs_2_2 : 需要 hdfs 2.2 或更高版本。
  • hdfs_2_3: 需要 hdfs 2.3 或更高版本。
  • hdfs_2_4: 需要 hdfs 2.4 或更高版本。
  • hdfs_2_5: 需要 hdfs 2.5 或更高版本。
  • hdfs_2_6: (默认) 需要 hdfs 2.6 或更高版本。
  • hdfs_2_7: 需要 hdfs 2.7 或更高版本。
  • hdfs_2_8: 需要 hdfs 2.8 或更高版本。
  • hdfs_2_9: 需要 hdfs 2.9 或更高版本。
  • hdfs_2_10: 需要 hdfs 2.10 或更高版本。
  • hdfs_3_0: 需要 hdfs 3.0 或更高版本。
  • hdfs_3_1: 需要 hdfs 3.1 或更高版本。
  • hdfs_3_2: 需要 hdfs 3.2 或更高版本。
  • hdfs_3_3:需要hdfs 3.3或更高版本。

请注意

  • 如果您未启用这些功能之一,默认情况下将提供由hdfs_2_6提供的API。
  • 启用一个功能也将启用其前面的所有功能。例如,启用hdfs_2_4也将启用hdfs_2_3hdfs_2_2
  • 过旧的hdfs版本可能包含错误或无法在您的平台上编译。

编译

hdfs-sys支持动态链接、静态链接和供应商

  • 如果已启用vnedored功能,hdfs-sys将以静态方式编译和链接libhdfs
  • 使用HDFS_LIB_DIR指定libhdfs.solibhdfs.a的路径
  • 使用HDFS_STATIC=1来选择在动态链接和静态链接之间切换
  • 如果未设置HDFS_LIB_DIR,我们将尝试查找${HADOOP_HOME}/lib/native
  • 如果所有环境变量都为空,我们将尝试以静态方式编译libhdfs并将其链接

依赖关系

此crate将动态链接到libjvm

为了使此crate正常工作,请确保以下环境变量设置正确

  • JAVA_HOMEhdfs-sys将搜索路径如${JAVA_HOME}/lib/server以链接libjvm

注意:如果DOCS_RS设置为构建文档,则hdfs-sys将忽略链接。

运行时

hdfs-sys使用JNI调用由hadoop版本提供的jar包中提供的函数。请在调用由hdfs-sys提供的任何函数之前确保CLASSPATH已正确设置。

export JAVA_HOME=/path/to/java
export HADOOP_HOME=/path/to/hadoop
export LD_LIBRARY_PATH=${JAVA_HOME}/lib/server
export CLASSPATH=$(find $HADOOP_HOME -iname "*.jar" | xargs echo | tr ' ' ':')

贡献

有关如何开始为此项目做出贡献的更多信息,请参阅CONTRIBUTING.md指南。

获取帮助

提交问题以报告错误或向讨论提问。

致谢

本项目高度受到clang-sys的启发

许可

Apache License, Version 2.0下许可。

依赖关系