rustqueue 0.2.0

Background jobs without infrastructure — embeddable job queue with zero external dependencies
Documentation
# Contributing to RustQueue

Thanks for your interest in contributing to RustQueue! This document covers the basics of getting started.

## Development Setup

### Prerequisites

- Rust 1.85+ (install via [rustup]https://rustup.rs/)
- Git

### Build & Test

```bash
cargo build                          # Debug build
cargo test                           # Run all tests (default features)
cargo test --features sqlite         # Include SQLite backend tests
cargo clippy                         # Lint
cargo fmt --check                    # Format check
```

### Before Submitting a PR

Every PR must pass all three checks:

```bash
cargo test                                        # All tests pass
cargo clippy --features sqlite,postgres,otel      # Zero warnings
cargo fmt --check                                 # Zero diffs
```

## Project Structure

```
src/
  api/        — HTTP REST API (axum)
  engine/     — Core business logic (queue, scheduler, webhooks, DAG flows)
  storage/    — Storage backends (redb, hybrid, memory, sqlite, postgres)
  protocol/   — TCP protocol (newline-delimited JSON + binary)
  config/     — Configuration loading
  dashboard/  — Embedded web dashboard
tests/        — Integration tests
benches/      — Criterion benchmarks
sdk/          — Client SDKs (Node.js, Python, Go)
```

## Coding Standards

- **Error handling**: `thiserror` for library errors, `anyhow` for binary/integration code
- **Async**: Everything async via tokio. Use `#[async_trait]` for trait objects
- **Naming**: snake_case for files/functions, PascalCase for types
- **Testing**: Unit tests in `#[cfg(test)]` modules, integration tests in `tests/`
- **No unsafe**: Unless absolutely necessary and well-documented

## PR Process

1. Fork the repository
2. Create a feature branch from `main`
3. Make your changes with tests
4. Run the full verification (test + clippy + fmt)
5. Submit a PR with a clear description of what and why

## Feature Flags

When adding code behind a feature flag, ensure it compiles with and without the flag:

```bash
cargo check                              # Default features
cargo check --features sqlite,postgres   # With optional backends
cargo check --no-default-features        # Minimal build
```

## Reporting Issues

- Use GitHub Issues for bug reports and feature requests
- Include reproduction steps for bugs
- Include your Rust version (`rustc --version`) and OS

## License

By contributing, you agree that your contributions will be licensed under the MIT OR Apache-2.0 dual license.