diff --git a/README.md b/README.md index 06621c1..e76a042 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,25 @@ # atproto-devtool -A developer tool for the [atproto](https://atproto.com/) ecosystem. The first -command it ships with is `test labeler`, which runs a conformance suite against -an atproto labeler and reports pass/fail results for identity resolution, HTTP -endpoints, the subscription firehose, and label signature cryptography. +A multitool for the [atproto](https://atproto.com/) developer ecosystem. ## Installation -From a checkout of this repository: +| Environment | CLI command | +|-------------|-------------| +| Cargo (Rust 1.85+) | `cargo install --path .` | -```bash -cargo install --path . -``` +## Usage + +### `test labeler` -## `test labeler` +Runs a conformance suite against a labeler, and produces a structured report +with per-check results plus a summary exit code. The suite has four stages: -Run the labeler conformance suite against a labeler. The suite runs four stages -in order — identity, HTTP, subscription, and crypto — and produces a structured -report with per-check results plus a summary exit code. +- **Identity**: DID document contains the correct entries, and the labeler's PDS + holds a valid labeler record. +- **HTTP**: Checks the `com.atproto.label.queryLabels` XRPC API. +- **Subscription**: Checks the `com.atproto.label.subscribeLabels` WebSocket. +- **Crypto**: Samples labels and verifies their signatures. ```text Run the labeler conformance suite against an atproto labeler @@ -50,7 +52,7 @@ Options: Print help (see a summary with '-h') ``` -### Examples +#### Examples Resolve by handle: @@ -76,8 +78,26 @@ Pass `--verbose` to any of the above to emit `DEBUG`-level tracing on stderr fetches, per-label verification). `NO_COLOR=1` or `--no-color` disables ANSI escape sequences in the rendered report. -### Exit codes +#### Exit codes - `0` — all spec-required checks passed (advisories and skipped checks are allowed). - `1` — one or more spec-required checks failed. +- `2` — no spec-required checks failed but one or more network errors occurred. + +## License + +Licensed under either of + + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) + * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) + +at your option. + +### Contribution + +Unless you explicitly state otherwise, any contribution intentionally +submitted for inclusion in the work by you, as defined in the Apache-2.0 +license, shall be dual licensed as above, without any additional terms or +conditions.