Official Rust SDK for the Linkbreakers API, auto-generated from OpenAPI specification.
Add this to your Cargo.toml:
[dependencies]
linkbreakers = "1"
tokio = { version = "1", features = ["full"] }- Rust 1.70 or higher
use linkbreakers::{apis::configuration::Configuration, apis::links_api, models::CreateLinkRequest};
#[tokio::main]
async fn main() {
// Create configuration with authentication
let mut config = Configuration::new();
config.bearer_access_token = Some("your-api-token".to_string());
// Create a shortened link
let mut request = CreateLinkRequest::new("https://example.com".to_string());
request.name = Some("My Link".to_string());
match links_api::links_service_create(&config, request, None).await {
Ok(response) => {
let shortlink = response.link.and_then(|link| link.shortlink).unwrap_or_default();
println!("Short link: {}", shortlink);
}
Err(e) => eprintln!("Error: {:?}", e),
}
// List links: page_size, then the optional page_token, include, tags,
// search, sort_by, sort_direction, view, directory_id and cursor
match links_api::links_service_list(&config, 10, None, None, None, None, None, None, None, None, None).await {
Ok(response) => {
println!("Found {} links", response.links.unwrap_or_default().len());
}
Err(e) => eprintln!("Error: {:?}", e),
}
}Each API is a module under linkbreakers::apis (links_api, visitors_api, ...) and each operation is a function named after the API's operation ID (links_service_create, links_service_list, visitors_service_identify, ...). It takes the configuration, then the path parameters, request body and query parameters in order, with optional ones as Option.
use linkbreakers::{apis::configuration::Configuration, apis::links_api};
fn main() {
// Create configuration with authentication
let mut config = Configuration::new();
config.bearer_access_token = Some("your-api-token".to_string());
// Example: List links (blocking)
let runtime = tokio::runtime::Runtime::new().unwrap();
let result = runtime.block_on(async {
links_api::links_service_list(&config, 10, None, None, None, None, None, None, None, None, None).await
});
match result {
Ok(response) => {
println!("Found {} links", response.links.unwrap_or_default().len());
}
Err(e) => eprintln!("Error: {:?}", e),
}
}The SDK supports Bearer token authentication:
use linkbreakers::apis::configuration::Configuration;
let mut config = Configuration::new();
config.bearer_access_token = Some("your-api-token".to_string());
// Use config with API callsFor detailed API documentation, visit: https://docs.linkbreakers.com
For Rust-specific docs, run: cargo doc --open
This SDK is automatically generated from the Linkbreakers OpenAPI specification and published when the API is updated. This README is written by hand: scripts/check-docs.sh compiles every Rust block in it against the generated code, on pull requests and before every release.
Current API version: See OPENAPI_VERSION
Report issues at: https://github.com/linkbreakers-com/linkbreakers-rust/issues
MIT License