~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/atproto

atproto's primitives in Rust, small and free of I/O

0
0
main
41 lines · 1.3 KB Raw History
# atproto

atproto's primitives in Rust, kept small and free of I/O: DRISL (DAG-CBOR)
and CIDs, TIDs and identifier syntax, secp256k1 and P-256 keys, the Merkle
search tree, CAR files, signed commits, PLC operations, service auth, JWKs
and JWTs for OAuth's DPoP proofs and client assertions, lexicon validation,
and the spaces alpha's set hash, commits and tokens.

Each part is checked against atproto's interop test vectors
(`tests/interop`) and against what the reference implementations make of
fixed inputs (`tests/reference`, whose README says how each was made).

## Using it

It is published to this repository's Cargo registry. Name the registry in
`.cargo/config.toml`:

```toml
[registries.atproto]
index = "sparse+https://knotless.dev/cargo/did:plc:bcgltzqazw5tb6k2g3ttenbj/3mzr5vldibtui/"
```

and depend on it:

```toml
atproto = { version = "0.1", registry = "atproto" }
```

Reading the registry needs no login.

## Working on it

`cargo test` runs every test. The `test` check holds every line and
function of `src/` under test (`cargo llvm-cov --fail-under-lines 100
--fail-under-functions 100`). A version is published with `cargo publish
--registry atproto`, by the repository's owner.

## License

MIT or Apache-2.0, at your option. The interop vectors are CC0
(`tests/interop/LICENSE-CC0`).