Development
How to build Apache Fory™
Clone the source tree from https://github.com/apache/fory.
Build Apache Fory™ Java
cd java
mvn -T16 package
Environment Requirements
- JDK 17+
- Maven 3.6.3+
Build Apache Fory™ Python
cd python
pip install -v -e .
# Optional: build Cython extension (replace X.Y with your Python version)
bazel build //:cp_fory_so --@rules_python//python/config_settings:python_version=X.Y
Environment Requirements
- CPython 3.8+
- Bazel 8+ (required when building Cython extensions)
Build Apache Fory™ C++
cd cpp
bazel build //cpp/...
Environment Requirements
- C++17 compiler
- Bazel 8+
Build Apache Fory™ Go
cd go/fory
go test -v ./...
Run Go xlang tests from Java test module:
cd java
mvn -T16 install -DskipTests
cd fory-core
FORY_GO_JAVA_CI=1 ENABLE_FORY_DEBUG_OUTPUT=1 mvn test -Dtest=org.apache.fory.xlang.GoXlangTest
Environment Requirements
- Go 1.24+
Build Apache Fory™ Rust
cd rust
cargo build
cargo test --features tests
# Debug a specific test
RUST_BACKTRACE=1 FORY_PANIC_ON_ERROR=1 ENABLE_FORY_DEBUG_OUTPUT=1 \
cargo test --test mod $dir$::$test_file::$test_method -- --nocapture
Environment Requirements
- Rust toolchain via rustup
cargo-expand(optional, for macro expansion debugging)
Build Apache Fory™ JavaScript
cd javascript
npm install
npm run build
node ./node_modules/.bin/jest --ci --reporters=default --reporters=jest-junit
Environment Requirements
- Node.js (LTS)
- npm
Lint Markdown Docs
cd docs
npx prettier --write "**/*.md"
Environment Requirements
- Node.js (LTS)
- npm
Contributing
For contribution details, see How to contribute to Apache Fory™.