concurrent_avl_tree 0.1.0

Lock-free readable AVL tree with epoch-based reclamation and background batch rebalancing.
Documentation
# Contributing to Concurrent AVL Tree


Thank you for your interest in contributing! This project follows strict Rust engineering standards to ensure safety, performance, and maintainability.

## 🛠️ Development Setup

1. Install Rust `1.91.1+` via `rustup`.
2. Clone the repository: `git clone https://codeberg.org/dzulkifli/concurrent-avl-tree.git`
3. Build: `cargo build --release`
4. Run tests: `cargo test`

## Code Standards

- **Formatting**: `cargo fmt` (enforced by CI). Follows `rustfmt.toml`.
- **Linting**: `cargo clippy -- -D warnings`. All `pub` items must pass `missing_docs`, `missing_safety_doc`, `missing_errors_doc`, and `missing_panics_doc`.
- **Documentation**: Every public API requires strict `rustdoc` sections: `## Description`, `## Invariant`, `## Thread Safety`, `## Complexity`, `## Examples`.
- **Testing**: Minimum 80% coverage for public API. Doc tests must compile and pass. Use `cargo-llvm-cov` for verification.
- **Safety**: `unsafe` blocks are prohibited unless formally justified and accompanied by exhaustive tests. `Send`/`Sync` guarantees must be explicitly documented.

## Pull Request Process

1. Create a feature branch from `main`.
2. Implement changes, ensuring `cargo test`, `cargo fmt --check`, and `cargo clippy -- -D warnings` pass.
3. Update `CHANGELOG.md` under `[Unreleased]` following Keep a Changelog format.
4. Submit PR with clear description, benchmark deltas (if applicable), and link to related issue.
5. Maintainers will review within 48 hours. CI must pass before merge.

## License

By contributing, you agree that your submissions will be licensed under the MIT License.