Skip to main content

Development

How to build Fury

Please checkout the source tree from https://github.com/apache/fury.

Build Fury Java

cd java
mvn clean compile -DskipTests

Environment Requirements

  • java 1.8+
  • maven 3.6.3+

Build Fury Python

cd python
# Uninstall numpy first so that when we install pyarrow, it will install the correct numpy version automatically.
# For Python versions less than 3.13, numpy 2 is not currently supported.
pip uninstall -y numpy
# Install necessary environment for Python < 3.13.
pip install pyarrow==15.0.0 Cython wheel pytest
# For Python 3.13, pyarrow 18.0.0 is available and requires numpy version greater than 2.
# pip install pyarrow==18.0.0 Cython wheel pytest
pip install -v -e .

Environment Requirements

  • python 3.6+

Build Fury C++

Build fury row format:

pip install pyarrow==15.0.0
bazel build //cpp/fury/row:fury_row_format

Build fury row format encoder:

pip install pyarrow==15.0.0
bazel build //cpp/fury/encoder:fury_encoder

Environment Requirements

  • compilers with C++17 support
  • bazel 6.3.2

Build Fury GoLang

cd go/fury
# run test
go test -v
# run xlang test
go test -v fury_xlang_test.go

Environment Requirements

  • go 1.13+

Build Fury Rust

cd rust
# build
cargo build
# run test
cargo test

Environment Requirements

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Build Fury JavaScript

cd javascript
npm install

# run build
npm run build
# run test
npm run test

Environment Requirements

  • node 14+
  • npm 8+