{"id":16028235,"url":"https://github.com/ewpratten/crashreport-rs","last_synced_at":"2026-01-19T23:02:43.132Z","repository":{"id":57673293,"uuid":"481611136","full_name":"ewpratten/crashreport-rs","owner":"ewpratten","description":"Automatic GitHub crash reporting system for any Rust crate","archived":false,"fork":false,"pushed_at":"2024-02-05T05:51:54.000Z","size":61,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T01:38:02.659Z","etag":null,"topics":["crash-reporting","error-reporting","issue-tracker","panic-handler","rust","rust-macros","utility"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/crashreport","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ewpratten.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"ewpratten"}},"created_at":"2022-04-14T13:16:34.000Z","updated_at":"2023-07-18T06:16:20.000Z","dependencies_parsed_at":"2024-10-27T16:15:03.985Z","dependency_job_id":"708d3ff0-5050-40fa-90fe-633247ac1d0f","html_url":"https://github.com/ewpratten/crashreport-rs","commit_stats":{"total_commits":12,"total_committers":2,"mean_commits":6.0,"dds":0.08333333333333337,"last_synced_commit":"91841a72422188d4ff902118519c4eb85be18008"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":"ewpratten/rust-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ewpratten%2Fcrashreport-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ewpratten%2Fcrashreport-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ewpratten%2Fcrashreport-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ewpratten%2Fcrashreport-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ewpratten","download_url":"https://codeload.github.com/ewpratten/crashreport-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247675597,"owners_count":20977378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crash-reporting","error-reporting","issue-tracker","panic-handler","rust","rust-macros","utility"],"created_at":"2024-10-08T20:41:34.426Z","updated_at":"2025-04-07T15:19:59.975Z","avatar_url":"https://github.com/ewpratten.png","language":"Rust","funding_links":["https://github.com/sponsors/ewpratten"],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/Ewpratten/crashreport-rs/raw/master/crashreport_screenshot.png\" style=\"margin:auto\"\u003e\n\n# Automatic Crash Reporting for Rust\n\n[![Crates.io](https://img.shields.io/crates/v/crashreport)](https://crates.io/crates/crashreport) \n[![Docs.rs](https://docs.rs/crashreport/badge.svg)](https://docs.rs/crashreport) \n[![Build](https://github.com/Ewpratten/crashreport-rs/actions/workflows/build.yml/badge.svg)](https://github.com/Ewpratten/crashreport-rs/actions/workflows/build.yml)\n[![Clippy](https://github.com/Ewpratten/crashreport-rs/actions/workflows/clippy.yml/badge.svg)](https://github.com/Ewpratten/crashreport-rs/actions/workflows/clippy.yml)\n[![Audit](https://github.com/Ewpratten/crashreport-rs/actions/workflows/audit.yml/badge.svg)](https://github.com/Ewpratten/crashreport-rs/actions/workflows/audit.yml)\n\n\n`crashreport` is a *set \u0026 forget* crate that appends a button to your application's panic messages allowing users to quickly report basic diagnostic information back to you.\n\n## Usage\n\nFirstly, this crate relies on you setting the [`repository`](https://doc.rust-lang.org/cargo/reference/manifest.html#the-repository-field) key in your `Cargo.toml` file. When using `crashreport`, your `Cargo.toml` could end up looking something like this:\n\n```toml\n[package]\nname = \"my-awesome-crate\"\nversion = \"0.1.0\"\nrepository = \"https://github.com/ewpratten/my-awesome-crate\"\n\n[dependencies]\ncrashreport = \"^1.0.0\"\n\n# If you never want terminal colors, import the crate like this instead:\ncrashreport = { version = \"^1.0.0\", default-features = false }\n```\n\nOn the code side, simply use our `crashreport!` macro to add a button to your panic messages globally:\n\n```rust\n#[macro_use]\nextern crate crashreport;\n\npub fn main() {\n    // The important bit :)\n    crashreport!();\n\n    // ... do stuff\n\n    // Your panics are now a little fancier!\n    panic!(\"This is a panic!\");\n}\n```\n\n## A bit about the internals\n\n`crashreport` works by *appending* a new function to the end of whatever your existing panic handler is. Don't worry, you can keep your fancy custom handlers if you want. Just initialize them *before* calling `crashreport!`.\n\n### Git provider resolution\n\nAs of now, we support the following hosted Git services:\n\n- GitHub\n- GitLab\n\nIf you happen to be using a self-hosted version of any of these services, `crashreport` will *not* pick it up automatically. Instead, enable one of the following features to force override provider resolution:\n\n- `assume_github`\n- `assume_gitlab`\n\n*Enabling more than one of these features will result in the first being used*\n\n### Terminal URLs\n\nWhenever possible, `crashreport` will try to make clickable buttons in your terminal. The work of deciding weather the terminal supports this is carried out by the [`supports-hyperlinks`](https://github.com/zkat/supports-hyperlinks) crate. If issues arise, please open an issue over there to add support. \n\nWorst case, you can force-disable button creation (falling back on printing out a URL) by setting `FORCE_HYPERLINK=0` in your environment.\n\n## Meta crashes\n\nDid you manage to crash `crashreport` itself? Panics caused inside of panic handlers produce large stacktraces. Just open an issue in this repository with your stack trace, and I will try to help you out.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fewpratten%2Fcrashreport-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fewpratten%2Fcrashreport-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fewpratten%2Fcrashreport-rs/lists"}