# lib.rs: the salvor umbrella crate
This crate exists to hold the `salvor` name on crates.io and to be the future
front door to the library. Right now it is documentation only: the file is a
single crate-level `//!` doc comment and no code.
## Walkthrough
A crate whose `src/lib.rs` contains only `//!` lines is a real, compilable
library with an empty public surface. That is enough to claim the name on the
registry without shipping a placeholder that pretends to do something it does
not. The version in `Cargo.toml` is a deliberate `0.0.0`, the conventional
signal for "registered, nothing to depend on yet."
It carries no dependencies on the `salvor-*` crates on purpose. A crate can
only publish once every dependency is already on the registry, and the family
is not published yet, so an umbrella that re-exported them now could not be
uploaded. Doc-only keeps it self-contained and publishable on its own.
At the real release, this file grows a set of `pub use` re-exports from
`salvor-runtime` and the other crates, the version moves to match the family,
and one `salvor` dependency covers the whole library.
## Concepts in this file
- **Doc-only crate**: a `lib.rs` of only `//!` comments compiles to a library
with no items. Legitimate for a name-holder or a pure documentation crate.
- **Version 0.0.0 as intent**: signals a registered-but-empty crate rather
than a usable release.
- **Publish ordering**: `cargo publish` requires every dependency to already
exist on the registry, which is why the umbrella stays dependency-free until
the family it would re-export is published.
## Check yourself
1. Why does this crate have no dependency on `salvor-runtime` yet?
2. What does the `0.0.0` version communicate?
<details>
<summary>Answers</summary>
1. Because `cargo publish` refuses a crate whose dependencies are not yet on
the registry, and the `salvor-*` family is unpublished. A dependency-free
doc-only crate can publish on its own to hold the name.
2. That the crate is registered but has nothing to depend on yet; the real
release will republish at a version aligned with the family.
</details>