Thanks for your interest in contributing! This guide will help you get started.
- Rust 1.82+ (see
rust-toolchain.toml) - Xcode 26+ (for iOS targets and Apple platform headers)
- cbindgen (
cargo install cbindgen) for generating C/Swift headers
# Install git hooks (runs fmt + clippy before each commit)
git config core.hooksPath .githooks# Build the workspace
cargo build
# Build the iOS framework (requires macOS with Xcode)
./build-ios.shcargo testTests that require a connected device or usbmuxd socket are ignored by default.
Run them explicitly with cargo test -- --ignored when a device is available.
# Check for common mistakes
cargo clippy --workspace -- -D warnings
# Check formatting
cargo fmt --all --check
# Auto-format
cargo fmt --all- Fork the repository
- Create a branch from
main(git checkout -b my-feature) - Set up git hooks:
git config core.hooksPath .githooks - Make your changes and add tests where appropriate
- Commit — the pre-commit hook will run
cargo fmt --checkandcargo clippyautomatically - Open a Pull Request against
main
- Keep PRs focused on a single change
- Follow existing code style (run
cargo fmt) - Add or update tests for new functionality
- Update documentation if behavior changes
Open an issue if something is unclear or you need help getting started.