A better Rust ATProto crate

fixed readme links

Changed files
+6 -6
+6 -6
README.md
··· 4 5 A suite of Rust crates intended to make it much easier to get started with atproto development, without sacrificing flexibility or performance. 6 7 - [Jacquard is simpler](https://whtwnd.com/nonbinary.computer/3m33efvsylz2s) because it is designed in a way which makes things simple that almost every other atproto library seems to make difficult. 8 9 - It is also designed around zero-copy/borrowed deserialization: types like [`Post<'_>`](https://tangled.org/@nonbinary.computer/jacquard/blob/main/crates/jacquard-api/src/app_bsky/feed/post.rs) can borrow data (via the [`CowStr<'_>`](https://docs.rs/jacquard/latest/jacquard/cowstr/enum.CowStr.html) type and a host of other types built on top of it) directly from the response buffer instead of allocating owned copies. Owned versions are themselves mostly inlined or reference-counted pointers and are therefore still quite efficient. The `IntoStatic` trait (which is derivable) makes it easy to get an owned version and avoid worrying about lifetimes. 10 11 ## Features 12 ··· 22 - All the building blocks of the convenient abstractions are available 23 - Use as much or as little from the crates as you need 24 25 - ## 0.9.0 Release Highlights: 26 27 **`#[derive(LexiconSchema)]` + `#[lexicon_union]` macros** 28 - Automatic schema generation for custom lexicons from Rust structs ··· 54 **Caching in identity/lexicon resolver** 55 - Basic LRU in-memory cache implementation using `mini-moka` 56 - Reduces number of network requests for certain operations 57 - - Works on both native and WebAssembly 58 - - **NOTE** wasm target for `mini-moka` requires a git dependency, use the git version of the crate when compiling for wasm 59 60 **XRPC client improvements** 61 - `set_options()` and `set_endpoint()` methods on `XrpcClient` trait ··· 131 132 ``` 133 134 - If you have `just` installed, you can run the [examples](https://tangled.org/@nonbinary.computer/jacquard/tree/main/examples) using `just example {example-name} {ARGS}` or `just examples` to see what's available. 135 136 > [!WARNING] 137 > A lot of the streaming code is still pretty experimental. The examples work, though.\
··· 4 5 A suite of Rust crates intended to make it much easier to get started with atproto development, without sacrificing flexibility or performance. 6 7 + [Jacquard is simpler](https://alpha.weaver.sh/nonbinary.computer/jacquard/jacquard_magic) because it is designed in a way which makes things simple that almost every other atproto library seems to make difficult. 8 9 + It is also designed around zero-copy/borrowed deserialization: types like [`Post<'_>`](https://tangled.org/nonbinary.computer/jacquard/blob/main/crates/jacquard-api/src/app_bsky/feed/post.rs) can borrow data (via the [`CowStr<'_>`](https://docs.rs/jacquard/latest/jacquard/cowstr/enum.CowStr.html) type and a host of other types built on top of it) directly from the response buffer instead of allocating owned copies. Owned versions are themselves mostly inlined or reference-counted pointers and are therefore still quite efficient. The `IntoStatic` trait (which is derivable) makes it easy to get an owned version and avoid worrying about lifetimes. 10 11 ## Features 12 ··· 22 - All the building blocks of the convenient abstractions are available 23 - Use as much or as little from the crates as you need 24 25 + ## 0.9.X Release Highlights: 26 27 **`#[derive(LexiconSchema)]` + `#[lexicon_union]` macros** 28 - Automatic schema generation for custom lexicons from Rust structs ··· 54 **Caching in identity/lexicon resolver** 55 - Basic LRU in-memory cache implementation using `mini-moka` 56 - Reduces number of network requests for certain operations 57 + - Works on both native and WebAssembly via vendored patched version of mini-moka 58 + 59 60 **XRPC client improvements** 61 - `set_options()` and `set_endpoint()` methods on `XrpcClient` trait ··· 131 132 ``` 133 134 + If you have `just` installed, you can run the [examples](https://tangled.org/nonbinary.computer/jacquard/tree/main/examples) using `just example {example-name} {ARGS}` or `just examples` to see what's available. 135 136 > [!WARNING] 137 > A lot of the streaming code is still pretty experimental. The examples work, though.\