Bindings to HDFS
Native C API.
Work with these bindings directly is boring and error proven, please use hdrs instead if ever possible.
To target a version of libhdfs
, enable a Cargo features such as one of the following:
hdfs_2_2
(default): requires hdfs 2.2 or later releases.hdfs_2_3
: requires hdfs 2.3 or later releases.hdfs_2_4
: requires hdfs 2.4 or later releases.hdfs_2_5
: requires hdfs 2.5 or later releases.hdfs_2_6
: requires hdfs 2.6 or later releases.hdfs_2_7
: requires hdfs 2.7 or later releases.hdfs_2_8
: requires hdfs 2.8 or later releases.hdfs_2_9
: requires hdfs 2.9 or later releases.hdfs_2_10
: requires hdfs 2.10 or later releases.hdfs_3_0
: requires hdfs 3.0 or later releases.hdfs_3_1
: requires hdfs 3.1 or later releases.hdfs_3_2
: requires hdfs 3.2 or later releases.hdfs_3_3
: requires hdfs 3.3 or later releases.
If you do not enable one of these features, the API provided by hdfs_2_2
will be available by default.
Enable one feature will also enable all features before it. For example, enable hdfs_2_4
will also enable hdfs_2_3
and hdfs_2_2
.
This crate will link to libjvm
dynamically.
To make this crate works correctly, please make sure the following env set correctly:
JAVA_HOME
:hdfs-sys
will search path like${JAVA_HOME}/lib/server
to linklibjvm
.
NOTE: hdfs-sys
will ignore linking if DOCS_RS
is set to build docs.
hdfs-sys
uses JNI to call functions provided by jars that provided by hadoop releases. Please make sure CLASSPATH
is set correctly before calling any functions provided by hdfs-sys
:
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 ' ' ':')
Check out the CONTRIBUTING.md guide for more details on getting started with contributing to this project.
Submit issues for bug report or asking questions in discussion.
- hdfs-rs: libhdfs binding and wrapper APIs for Rust, not maintained since 2015.
- fs-hdfs: forks based on hdfs-rs, C files are from hadoop
2.7.3
. - dataFusion-hdfs-native: bindings of libhdfs3
This project is highly inspired by clang-sys
Licensed under Apache License, Version 2.0.