# pool-mod v0.1.0 — Scaffold
**The repository foundation.** v0.1.0 stands up the crate skeleton, the engineering standard that governs it, and a cross-platform CI pipeline that is green on every supported target before a single line of pooling logic is written. There is no public pooling API yet — that lands in v0.2.0. This release exists so that all subsequent work starts from a base that compiles, formats, lints, documents, and tests cleanly on Linux, macOS, and Windows, across both stable Rust and the declared MSRV.
## What is pool-mod?
A generic object and connection pool for Rust. The 1.0 target is async-safe min/max sizing, idle timeouts, max-lifetime enforcement, validation-on-borrow, and health-check callbacks — runtime-agnostic, so it works for database connections, HTTP clients, worker threads, or any expensive resource. The full scope is tracked in `.dev/ROADMAP.md`.
## What's in 0.1.0
### Crate skeleton
`src/lib.rs` carries the REPS lint discipline at the crate root — `missing_docs`, `unsafe_op_in_unsafe_fn`, the `unwrap`/`expect`/`todo`/`unimplemented` bans, the `print`/`dbg` bans, `unreachable`, and the undocumented-`unsafe` guards are all denied. The only public item is `VERSION`, populated from Cargo at build time:
```rust
assert!(!pool_mod::VERSION.is_empty());
```
A smoke test in `tests/` asserts that constant is non-empty, giving CI something real to run from day one.
### Engineering standard
`REPS.md` (Rust Efficiency & Performance Standards, v0.2.0) is the supreme authority for the repository — the canonical copy shared across the sibling crates. Every later decision about allocation discipline, `unsafe` policy, error handling, documentation, and cross-platform behavior is measured against it.
### Cross-platform CI
`.github/workflows/ci.yml` runs `cargo fmt --all -- --check`, `cargo clippy --all-targets --all-features -- -D warnings`, `cargo test --all-features`, and `cargo doc --no-deps --all-features` (with `RUSTDOCFLAGS=-D warnings`) on the full `{ubuntu, macos, windows} × {stable, 1.75.0}` matrix.
### Toolchain corrections
Three defects in the original scaffold are resolved so CI can actually pass:
- **Edition.** The crate is edition 2021. The scaffold shipped as edition 2024, which requires Rust 1.85 and made the manifest unbuildable on the declared MSRV 1.75 — the MSRV CI job could never have gone green.
- **Line endings.** A `.gitattributes` pins `* text=auto eol=lf`. Without it the GitHub Windows runner (`git autocrlf=true`) checks sources out as CRLF, and `cargo fmt --check` fails against the `newline_style = "Unix"` pin in `rustfmt.toml` — a failure that reproduces only on the Windows runner.
- **Encoding.** The source files carried a UTF-8 BOM and lacked trailing newlines; both are stripped/added to satisfy `rustfmt`.
## Breaking changes
**None.** This is the first release.
## Verification
Run on Windows x86_64 (Rust stable 1.95.0 and 1.75.0) and on Linux via WSL2 Ubuntu (Rust stable 1.95.0); these mirror the CI matrix.
```bash
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features
cargo +1.75 build --all-features
cargo +1.75 test --all-features
```
All green. Test count at this tag: 1 integration smoke test (`version_is_set`); 0 unit tests and 0 doctests, since the public surface is a single constant.
## What's next
- **0.2.0 — Foundation.** Define the public API surface: the pool types, the resource-lifecycle traits, the error type, module structure, and a first end-to-end smoke test. See `.dev/ROADMAP.md`.
## Installation
```toml
[dependencies]
pool-mod = "0.1"
```
MSRV: Rust 1.75. Edition 2021.
## Documentation
- [README](https://github.com/jamesgober/pool-mod/blob/main/README.md)
- [API Reference](https://github.com/jamesgober/pool-mod/blob/main/docs/API.md)
- [CHANGELOG](https://github.com/jamesgober/pool-mod/blob/main/CHANGELOG.md)
---
**Changelog:** [`CHANGELOG.md`](https://github.com/jamesgober/pool-mod/blob/main/CHANGELOG.md#010---2026-05-27).