Contributing#

Contributions are welcome, including compatibility fixes, regression tests, benchmarks, documentation, and integration examples.

Use a current stable Rust toolchain with rustfmt and clippy.

Run the development checks from the repository root:

cargo test
cargo fmt --all -- --check
cargo clippy -- -D warnings

cargo test also checks the Rust example in Getting started and the SQL results in the README and in the pages under docs/.

Regenerate the SQL reference after changing function documentation. cargo test checks its examples, and CI fails if the committed file is stale:

cargo run --bin generate_function_docs

For Spark compatibility changes, reference the upstream behavior and add regression coverage in the SQL tests.

The issue tracker contains individual tasks and discussions. Overall direction is tracked in #69.

Documentation#

This site is built with Sphinx from the pages under docs/. To build it locally, run:

pip install -r docs/requirements.txt
sphinx-build -W --keep-going -b html docs target/docs

Or, if you have uv installed, build without setting up a Python environment:

uvx --with-requirements docs/requirements.txt --from sphinx sphinx-build -W --keep-going -b html docs target/docs

Then open target/docs/index.html. CI runs the same build, and warnings such as broken links between pages fail it.

Benchmarks#

See Benchmarks for the function benchmarks and JSONBench.