*/!\ The project is in the alpha stage /!*
Airbrake Rust is an Airbrake notifier library for the Rust Programming language. The library provides minimalist API that enables the ability to send Rust errors to the Airbrake dashboard.
- Uses the new Airbrake JSON API (v3)[link]
- Simple, consistent and easy-to-use library API[link]
- Awesome performance (check out our benchmarks)[link
- Asynchronous error reporting[link]
- Logging support via env_logger[link]
- Support for proxying[link]
- Support for environments[link]
- Filters support (filter out sensitive or unwanted data that shouldn't be sent)[link]
- Ability to ignore errors based on any condition[link]
- SSL support (all communication with Airbrake is encrypted by default)
Add the crate to your Cargo.toml:
[dependencies]
airbrake = "0.2"This is the minimal example that you can use to test Airbrake Rust with your project:
extern crate airbrake;
use std::num::ParseIntError;
fn double_number(number_str: &str) -> Result<i32, ParseIntError> {
number_str.parse::<i32>().map(|n| 2 * n)
}
fn main() {
let mut airbrake = airbrake::configure(|config| {
config.project_id = "113743".to_owned();
config.project_key = "81bbff95d52f8856c770bb39e827f3f6".to_owned();
});
match double_number("NOT A NUMBER") {
Ok(n) => assert_eq!(n, 20),
// Asynchronously sends the error to the dashboard.
Err(err) => airbrake.notify(err),
}
// Joins worker threads.
airbrake.close();
}You must set both project_id & project_key.
To find your project_id and project_key navigate to your project's General
Settings and copy the values from the right sidebar.
let mut airbrake = airbrake::configure(|config| {
config.project_id = "113743".to_owned();
config.project_key = "81bbff95d52f8856c770bb39e827f3f6".to_owned();
});By default, it is set to https://airbrake.io. A host is a web address
containing a scheme ("http" or "https"), a host and a port. You can omit the
port (80 will be assumed).
let mut airbrake = airbrake::configure(|config| {
config.host = "http://localhost:8080".to_owned();
});The number of threads that handle notice sending. The default value is 1.
let mut airbrake = airbrake::configure(|config| {
config.workers = 5;
});If your server is not able to directly reach Airbrake, you can use proxy support. By default, Airbrake Rust uses direct connection. Note: proxy authentication is not supported yet.
let mut airbrake = airbrake::configure(|config| {
config.proxy = "127.0.0.1:8080".to_owned();
});The version of your application that you can pass to differentiate errors between multiple versions. It's not set by default.
let mut airbrake = airbrake::configure(|config| {
config.app_version = "1.0.0".to_owned();
});Sends an error to Airbrake asynchronously. error must implement the
std::error::Error trait. Returns ().
let mut airbrake = airbrake::configure(|config| {
config.project_id = "123".to_owned();
config.project_key = "321".to_owned();
});
airbrake.notify(std::io::Error::last_os_error());Sends an error to Airbrake synchronously. error must implement the
std::error::Error trait. Returns
rustc_serialize::json::Json. Accepts the same
parameters as Airbrake.notify.
let mut airbrake = airbrake::configure(|config| {
config.project_id = "123".to_owned();
config.project_key = "321".to_owned();
});
airbrake.notify_sync(std::io::Error::last_os_error());