1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*!
DEPRECATED: This crate has been renamed to [`s2-sdk`](https://crates.io/crates/s2-sdk).
Please update your `Cargo.toml`:
```toml
[dependencies]
s2-sdk = "0.22"
```
And update your imports from `use s2::...` to `use s2_sdk::...`.
The Rust SDK provides ergonomic wrappers and utilities to interact with the
[S2 API](https://s2.dev/docs/interface/grpc).
# Getting started
1. Ensure you have `tokio` added as a dependency. The SDK relies on [Tokio](https://crates.io/crates/tokio)
for executing async code.
```bash
cargo add tokio --features full
```
1. Add the `streamstore` dependency to your project:
```bash
cargo add streamstore
```
1. Generate an authentication token by logging onto the web console at [s2.dev](https://s2.dev/dashboard).
1. Make a request using SDK client.
```no_run
# let _ = async move {
let config = s2::ClientConfig::new("<YOUR AUTH TOKEN>");
let client = s2::Client::new(config);
let basins = client.list_basins(Default::default()).await?;
println!("My basins: {:?}", basins);
# return Ok::<(), s2::client::ClientError>(()); };
```
See documentation for the [`client`] module for more information on how to
use the client, and what requests can be made.
# Examples
We have curated a bunch of examples in the
[SDK repository](https://github.com/s2-streamstore/s2-sdk-rust/tree/main/examples)
demonstrating how to use the SDK effectively:
* [List all basins](https://github.com/s2-streamstore/s2-sdk-rust/blob/main/examples/list_all_basins.rs)
* [Explicit stream trimming](https://github.com/s2-streamstore/s2-sdk-rust/blob/main/examples/explicit_trim.rs)
* [Producer (with concurrency control)](https://github.com/s2-streamstore/s2-sdk-rust/blob/main/examples/producer.rs)
* [Consumer](https://github.com/s2-streamstore/s2-sdk-rust/blob/main/examples/consumer.rs)
* and many more...
This documentation is generated using
[`rustdoc-scrape-examples`](https://doc.rust-lang.org/rustdoc/scraped-examples.html),
so you will be able to see snippets from examples right here in the
documentation.
# Feedback
We use [Github Issues](https://github.com/s2-streamstore/s2-sdk-rust/issues)
to track feature requests and issues with the SDK. If you wish to provide
feedback, report a bug or request a feature, feel free to open a Github
issue.
# Quick Links
* [S2 Website](https://s2.dev)
* [S2 Documentation](https://s2.dev/docs)
* [CHANGELOG](https://github.com/s2-streamstore/s2-sdk-rust/blob/main/CHANGELOG.md)
*/
pub use ;
pub use Streaming;