Contributing

Apache Paimon Rust welcomes contributions from everyone. See the full Contributing Guide for detailed instructions.

Quick Start

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/<your-username>/paimon-rust.git
  3. Create a feature branch: git checkout -b feature/my-feature
  4. Make your changes and add tests
  5. Run checks locally before submitting
  6. Open a Pull Request

Development Setup

# Ensure you have the correct Rust toolchain
rustup show

# Build the project
cargo build

# Run the unit tests (a bare `cargo test` also builds the Python binding and
# can fail to link libpython on some platforms)
cargo test -p paimon --all-targets --features vortex
cargo test -p paimon-rest-server --all-targets

# Format code
cargo fmt --all

# Lint (matches CI)
cargo clippy --locked --all-targets --workspace --features vortex -- -D warnings

The integration suites automatically extract a committed Java-written golden warehouse into temporary directories; Spark and Docker are not required:

cargo test -p paimon-integration-tests --all-targets
cargo test -p paimon-datafusion --all-targets

Set PAIMON_TEST_WAREHOUSE to test an existing warehouse instead. Missing fixture tables fail the tests rather than being skipped or generated by the Rust writer.

Finding Issues

  • Check open issues for tasks to work on
  • Issues labeled good first issue are great starting points

Community