Skip to content

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 fulltext,vortex
cargo test -p paimon-rest-server --all-targets

# Format code
cargo fmt --all

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

The integration suites read a Paimon warehouse written by Spark, so they need Docker rather than cargo alone:

make docker-up    # writes /tmp/paimon-warehouse
cargo test -p paimon-integration-tests --all-targets
cargo test -p paimon-datafusion --all-targets
make docker-down

Finding Issues

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

Community