qstash-rs
is a Rust library for interacting with Upstash QStash. It contains a client and a server (WIP) module.
The client library it is a wrapper around the Upstash QStash REST API.
You can install qstash-rs
with cargo
:
cargo add qstash-rs
To start using the client SDK, you need to instantiate the Client
struct with your QStash token:
#[tokio::main]
async fn main() {
let qstash_client = Client::new("<QSTASH_TOKEN>", None, None).expect("Could not create client");
}
Then you can access any of the methods that the client supports. For example to publish a new message with a JSON body to a queue:
#[tokio::main]
async fn main() {
let qstash_client = Client::new("<QSTASH_TOKEN>", None, None).expect("Could not create client");
match qstash_client
.publish_json(
PublishRequestUrl::Url("https://google.com".parse().expect("Could not parse URL")),
HashMap::from([("test", "test")]),
None,
)
.await
{
Ok(r) => {
tracing::info!("Response: {:?}", r);
for res in r {
if res.error.is_some() {
panic!("This should NOT have an error");
}
}
}
Err(e) => {
tracing::error!("{}", e.to_string());
panic!("Could not publish");
}
};
}
A more comprehensive example can be found in the crate documentation
Contributions are welcome! Please feel free to submit a pull request or open an issue if you have a problem, question, or suggestion.
This project operates under the MIT License. Details in the LICENSE file.