Crates.io | unkey |
lib.rs | unkey |
version | 0.5.0 |
source | src |
created_at | 2023-08-27 02:39:22.726882 |
updated_at | 2024-10-06 15:03:17.198565 |
description | An asynchronous Rust SDK for the Unkey API. |
homepage | https://github.com/Jonxslays/unkey |
repository | https://github.com/Jonxslays/unkey |
max_upload_size | |
id | 955847 |
size | 101,757 |
An asynchronous Rust SDK for the Unkey API.
All the API key management features you love, now with more type safety!
The minimum supported Rust version for the project is 1.63.0
.
Full documentation can be found at https://docs.rs/unkey.
cargo
cargo add unkey
Add the following to your Cargo.toml
dependencies array:
unkey = "0.4" # I won't forget to update this™
use unkey::models::VerifyKeyRequest;
use unkey::Client;
async fn verify_key() {
let c = Client::new("unkey_ABC");
let req = VerifyKeyRequest::new("test_DEF", "api_JJJ");
match c.verify_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
use unkey::models::CreateKeyRequest;
use unkey::Client;
async fn create_key() {
let c = Client::new("unkey_ABC");
let req = CreateKeyRequest::new("api_123")
.set_prefix("test")
.set_remaining(100)
.set_name("test_name")
.set_owner_id("jonxslays");
match c.create_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
use unkey::models::{Refill, RefillInterval, UpdateKeyRequest};
use unkey::Client;
async fn update_key() {
let c = Client::new("unkey_ABC");
let req = UpdateKeyRequest::new("key_XYZ")
.set_name(Some("new_name")) // Update the keys name
.set_ratelimit(None) // Remove any ratelimit on the key
.set_expires(None) // Remove any expiration date
.set_refill(Some(Refill::new(100, RefillInterval::Daily)));
match c.update_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
use unkey::models::RevokeKeyRequest;
use unkey::Client;
async fn revoke_key() {
let c = Client::new("unkey_ABC");
let req = RevokeKeyRequest::new("key_XYZ");
match c.revoke_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
use unkey::models::ListKeysRequest;
use unkey::Client;
async fn list_keys() {
let c = Client::new("unkey_ABC");
let req = ListKeysRequest::new("api_123");
match c.list_keys(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
use unkey::models::GetApiRequest;
use unkey::Client;
async fn get_api() {
let c = Client::new("unkey_ABC");
let req = GetApiRequest::new("api_123");
match c.get_api(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
use unkey::models::GetKeyRequest;
use unkey::Client;
async fn get_key() {
let c = Client::new("unkey_ABC");
let req = GetKeyRequest::new("key_123");
match c.get_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
use unkey::models::{UpdateOp, UpdateRemainingRequest};
use unkey::Client;
async fn update_remaining() {
let c = Client::new("unkey_ABC");
let req = UpdateRemainingRequest::new("key_123", Some(100), UpdateOp::Set);
match c.update_remaining(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
Unkey for Rust is open to contributions! Check out the contributing guide to get started.
Unkey for Rust is licensed under the MIT License.