+6
-6
README.md
+6
-6
README.md
···
4
4
5
5
A suite of Rust crates intended to make it much easier to get started with atproto development, without sacrificing flexibility or performance.
6
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.
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
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.
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
10
11
11
## Features
12
12
···
22
22
- All the building blocks of the convenient abstractions are available
23
23
- Use as much or as little from the crates as you need
24
24
25
-
## 0.9.0 Release Highlights:
25
+
## 0.9.X Release Highlights:
26
26
27
27
**`#[derive(LexiconSchema)]` + `#[lexicon_union]` macros**
28
28
- Automatic schema generation for custom lexicons from Rust structs
···
54
54
**Caching in identity/lexicon resolver**
55
55
- Basic LRU in-memory cache implementation using `mini-moka`
56
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
57
+
- Works on both native and WebAssembly via vendored patched version of mini-moka
58
+
59
59
60
60
**XRPC client improvements**
61
61
- `set_options()` and `set_endpoint()` methods on `XrpcClient` trait
···
131
131
132
132
```
133
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.
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
135
136
136
> [!WARNING]
137
137
> A lot of the streaming code is still pretty experimental. The examples work, though.\