{"id":13994644,"url":"https://github.com/getsentry/symbolic","last_synced_at":"2026-04-20T13:07:59.713Z","repository":{"id":37925925,"uuid":"102011536","full_name":"getsentry/symbolic","owner":"getsentry","description":"Stack trace symbolication library written in Rust","archived":false,"fork":false,"pushed_at":"2026-04-17T13:48:03.000Z","size":27239,"stargazers_count":531,"open_issues_count":13,"forks_count":85,"subscribers_count":53,"default_branch":"master","last_synced_at":"2026-04-18T07:02:08.774Z","etag":null,"topics":["symbolication","tag-production"],"latest_commit_sha":null,"homepage":"https://github.com/getsentry/symbolic#readme","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getsentry.png","metadata":{"funding":{"custom":["https://sentry.io/pricing/","https://sentry.io/"]},"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-08-31T14:48:11.000Z","updated_at":"2026-04-17T14:07:15.000Z","dependencies_parsed_at":"2023-09-27T16:11:33.481Z","dependency_job_id":"2c429a50-432a-452d-997f-44d36ccd302d","html_url":"https://github.com/getsentry/symbolic","commit_stats":{"total_commits":1277,"total_committers":51,"mean_commits":25.03921568627451,"dds":0.711824588880188,"last_synced_commit":"3b2f1f6664c9b71f8138acdde5cb8213035eda0e"},"previous_names":[],"tags_count":175,"template":false,"template_full_name":null,"purl":"pkg:github/getsentry/symbolic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fsymbolic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fsymbolic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fsymbolic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fsymbolic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getsentry","download_url":"https://codeload.github.com/getsentry/symbolic/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getsentry%2Fsymbolic/sbom","scorecard":{"id":424647,"data":{"date":"2025-08-11","repo":{"name":"github.com/getsentry/symbolic","commit":"6c82576ff1c078915be7ad08506ad3be0f0684c3"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":5,"reason":"Found 16/30 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"19 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/danger.yml:1","Warn: no topLevel permission defined: .github/workflows/enforce-license-compliance.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/weekly.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":0,"reason":"binaries present in source code","details":["Warn: binary detected: symbolic-debuginfo/tests/fixtures/2d10c42f-591d-3265-b147-78ba0868073f.dwarf-hidden:1","Warn: binary detected: symbolic-debuginfo/tests/fixtures/helloworld:1","Warn: binary detected: symbolic-debuginfo/tests/fixtures/invalid-symbols.fuzzed:1","Warn: binary detected: symbolic-testutils/fixtures/linux/crash:1","Warn: binary detected: symbolic-testutils/fixtures/linux/crash.debug:1","Warn: binary detected: symbolic-testutils/fixtures/linux/crash.debug-zlib:1","Warn: binary detected: symbolic-testutils/fixtures/linux/crash.debug-zstd:1","Warn: binary detected: symbolic-testutils/fixtures/linux/elf_debuglink/gen/elf_with123_debuglink:1","Warn: binary detected: symbolic-testutils/fixtures/linux/elf_debuglink/gen/elf_with12_debuglink:1","Warn: binary detected: symbolic-testutils/fixtures/linux/elf_debuglink/gen/elf_with1_debuglink:1","Warn: binary detected: symbolic-testutils/fixtures/linux/elf_debuglink/gen/elf_with_compressed_debuglink:1","Warn: binary detected: symbolic-testutils/fixtures/linux/elf_debuglink/gen/elf_with_debuglink:1","Warn: binary detected: symbolic-testutils/fixtures/linux/elf_debuglink/gen/elf_without_debuglink:1","Warn: binary detected: symbolic-testutils/fixtures/macos/Example.framework.dSYM/Contents/Resources/DWARF/Example:1","Warn: binary detected: symbolic-testutils/fixtures/macos/crash:1","Warn: binary detected: symbolic-testutils/fixtures/macos/crash.dSYM/Contents/Resources/DWARF/crash:1","Warn: binary detected: symbolic-testutils/fixtures/macos/overlapping_funcs.dSYM/Contents/Resources/DWARF/overlapping_funcs:1","Warn: binary detected: symbolic-testutils/fixtures/ppdb-sourcelink-sample/ppdb-sourcelink-sample.dll:1","Warn: binary detected: symbolic-testutils/fixtures/wasm/simple.wasm:1","Warn: binary detected: symbolic-testutils/fixtures/windows/CrashWithException.exe:1","Warn: binary detected: symbolic-testutils/fixtures/windows/Sentry.Samples.Console.Basic-embedded-ppdb-with-sources.dll:1","Warn: binary detected: symbolic-testutils/fixtures/windows/Sentry.Samples.Console.Basic-embedded-ppdb.dll:1","Warn: binary detected: symbolic-testutils/fixtures/windows/Sentry.Samples.Console.Basic.dll:1","Warn: binary detected: symbolic-testutils/fixtures/windows/crash.exe:1","Warn: binary detected: symbolic-testutils/fixtures/windows/hello-dwarf.exe:1","Warn: binary detected: symbolic-testutils/fixtures/windows/integration.dll:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: RustCargoFuzzer integration found: symbolic-debuginfo/fuzz/fuzz_targets/fuzz_objects.rs:4","Info: RustCargoFuzzer integration found: symbolic-debuginfo/fuzz/fuzz_targets/fuzz_objects.rs:61","Info: RustCargoFuzzer integration found: symbolic-debuginfo/fuzz/fuzz_targets/fuzz_objects.rs:62","Info: RustCargoFuzzer integration found: symbolic-ppdb/fuzz/fuzz_targets/fuzz_ppdb.rs:4","Info: RustCargoFuzzer integration found: symbolic-ppdb/fuzz/fuzz_targets/fuzz_ppdb.rs:17","Info: RustCargoFuzzer integration found: symbolic-ppdb/fuzz/fuzz_targets/fuzz_ppdb.rs:19"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:108: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:112: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:123: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:128: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/danger.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/danger.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/enforce-license-compliance.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/enforce-license-compliance.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/weekly.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/weekly.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/weekly.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/weekly.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/weekly.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/getsentry/symbolic/weekly.yml/master?enable=pin","Info:   1 out of  21 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of  12 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":4,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'master'","Info: 'force pushes' disabled on branch 'master'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'master'","Warn: 'stale review dismissal' is disabled on branch 'master'","Warn: required approving review count is 1 on branch 'master'","Info: codeowner review is required on branch 'master'","Warn: 'last push approval' is disabled on branch 'master'","Warn: 'up-to-date branches' is disabled on branch 'master'","Info: status check found to merge onto on branch 'master'","Info: PRs are required in order to make changes on branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 12.16.2 not signed: https://api.github.com/repos/getsentry/symbolic/releases/239284851","Warn: release artifact 12.16.1 not signed: https://api.github.com/repos/getsentry/symbolic/releases/236612238","Warn: release artifact 12.16.0 not signed: https://api.github.com/repos/getsentry/symbolic/releases/233434332","Warn: release artifact 12.15.5 not signed: https://api.github.com/repos/getsentry/symbolic/releases/216137850","Warn: release artifact 12.15.4 not signed: https://api.github.com/repos/getsentry/symbolic/releases/214136013","Warn: release artifact 12.16.2 does not have provenance: https://api.github.com/repos/getsentry/symbolic/releases/239284851","Warn: release artifact 12.16.1 does not have provenance: https://api.github.com/repos/getsentry/symbolic/releases/236612238","Warn: release artifact 12.16.0 does not have provenance: https://api.github.com/repos/getsentry/symbolic/releases/233434332","Warn: release artifact 12.15.5 does not have provenance: https://api.github.com/repos/getsentry/symbolic/releases/216137850","Warn: release artifact 12.15.4 does not have provenance: https://api.github.com/repos/getsentry/symbolic/releases/214136013"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/getsentry/.github/SECURITY.md:1","Info: Found linked content: github.com/getsentry/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/getsentry/.github/SECURITY.md:1","Info: Found text in security policy: github.com/getsentry/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-rr8g-9fpq-6wmg","Warn: Project is vulnerable to: RUSTSEC-2025-0023","Warn: Project is vulnerable to: GHSA-94vh-gphv-8pm8"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 16 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T01:58:40.067Z","repository_id":37925925,"created_at":"2025-08-19T01:58:40.067Z","updated_at":"2025-08-19T01:58:40.067Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32048474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["symbolication","tag-production"],"created_at":"2024-08-09T14:03:00.794Z","updated_at":"2026-04-20T13:07:59.707Z","avatar_url":"https://github.com/getsentry.png","language":"Rust","funding_links":["https://sentry.io/pricing/","https://sentry.io/"],"categories":["Rust"],"sub_categories":[],"readme":"# Symbolic\n\n[![Build Status](https://github.com/getsentry/symbolic/workflows/CI/badge.svg)](https://github.com/getsentry/symbolic/actions?workflow=CI)\n\u003ca href=\"https://crates.io/crates/symbolic\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/symbolic.svg\" alt=\"\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.python.org/pypi/Symbolic\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/symbolic.svg\" alt=\"\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/getsentry/symbolic/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/pypi/l/Symbolic.svg\" alt=\"\"\u003e\u003c/a\u003e\n[![codecov](https://codecov.io/gh/getsentry/symbolic/branch/master/graph/badge.svg?token=suNHZfbjKW)](https://codecov.io/gh/getsentry/symbolic)\n\n[Symbolic](https://docs.rs/symbolic) is a library written in Rust which is used at\n[Sentry](https://sentry.io/) to implement symbolication of native stack traces, sourcemap handling\nfor minified JavaScript and more. It consists of multiple largely independent crates which are\nbundled together into a C and Python library so it can be used independently of Rust.\n\n## What's in the package\n\nSymbolic provides the following functionality:\n\n- Symbolication based on custom cache files (symcache)\n- Symbol cache file generators from:\n  - Mach, ELF and PE symbol tables\n  - Mach, ELF and PE embedded DWARF data\n  - PDB CodeView debug information\n  - .NET Portable PDB\n  - Breakpad symbol files\n  - Unity IL2CPP\n- Demangling support\n  - C++ (GCC, clang and MSVC)\n  - Objective C / Objective C++\n  - Rust\n  - Swift\n- JavaScript sourcemap expansion\n  - Basic token mapping\n  - Heuristics to find original function names based on minified sources\n  - Indexed sourcemap to sourcemap merging\n- Proguard function mappings\n- Generate Breakpad symbol files from Mach, ELF and PDBs\n- Convenient C and Python library\n- Processing of Unreal Engine 4 native crash reports\n  - Extract and process minidumps\n  - Expose logs and UE4 context information\n\n## Rust Usage\n\nThe Rust crates are published to [Crates.io](https://crates.io/crates/symbolic) and documentation is available on [docs.rs](https://docs.rs/symbolic/latest/symbolic/).\n\n## Python Usage\n\nSymbolic is hosted on [PyPI](https://pypi.python.org/pypi/symbolic). It comes as a library with\nprebuilt wheels for linux and macOS. On other operating systems or when using as rust library, you\nneed to build symbolic manually. It should be compatible with both Python 2 and Python 3.\n\nThe python library ships all of the above features in a flat module:\n\n```python\nfrom symbolic import Archive\n\nfat = Archive.open('/path/to/object')\nobj = fat.get_object(arch = 'x86_64')\nprint 'object debug id: {}' % obj.debug_id\n```\n\n## C Bindings\n\nSymbolic also offers C bindings, which allow for FFI into arbitrary languages. Have a look at the\nthe [Symbolic C-ABI readme](symbolic-cabi/README.md) for more information.\n\n## Source Crates\n\nA lot of functionality exposed by this library come from independent Rust crates\nfor better use:\n\n- [sourcemap](https://github.com/getsentry/rust-sourcemap)\n- [proguard](https://github.com/getsentry/rust-proguard)\n- [gimli](https://github.com/gimli-rs/gimli)\n- [goblin](https://github.com/m4b/goblin)\n- [pdb](https://github.com/willglynn/pdb)\n\n## Building and Development\n\nTo build the Rust crate, we require the **latest stable Rust**, as well as a C++11 compiler. The\ncrate is split into a workspace with multiple features, so when running building or running tests\nalways make sure to pass the `--all` and `--all-features` flags.\n\n```bash\n# Check whether the crate compiles\ncargo check --all --all-features\n\n# Run Rust tests\ncargo test --all --all-features\n```\n\nWe use `rustfmt` and `clippy` from the latest stable channel for code formatting and linting. To\nmake sure that these tools are set up correctly and running with the right configuration, use the\nfollowing make targets:\n\n```bash\n# Format the entire codebase\nmake format\n\n# Run clippy on the entire codebase\nmake lint\n```\n\nMost likely, new functionality also needs to be added to the Python package. This first requires to\nexpose new functions in the C ABI. For this, refer to the [Symbolic C-ABI readme](symbolic-cabi/README.md).\n\nWe highly recommend to develop and test the python package in a **virtual environment**. Once the\nABI has been updated and tested, ensure the virtualenv is active and install the package, which\nbuilds the native library. There are two ways to install this:\n\n```bash\n# Install the release build, recommended:\npip install --editable ./py\n\n# Install the debug build, faster installation but much slower runtime:\nSYMBOLIC_DEBUG=1 pip install --editable ./py\n```\n\nFor testing, we use ubiquitous `pytest`. Again, ensure that your virtualenv is active and the latest\nversion of the native library has been installed. Then, run:\n\n```bash\n# Run tests manually\npytest ./py/tests\n\n# Creates a new virtualenv, installs the release build and runs tests:\nmake pytest\n```\n\n## Examples\n\nThe repository contains a few examples that show how to use `symbolic` to work with debug files and\nminidumps. Most of these examples can also be used to extract information from such files or verify\ntheir integrity:\n\n- `dump_cfi`: Writes call frame information from an object file to standard out. The output format\n  is Breakpad's `STACK` records.\n\n- `dump_sources`: Creates a source archive from all files referenced by an object file. This is now\n  integrated into `sentry-cli difutil bundle-sources`.\n\n- `minidump_stackwalk`: Extracts stack traces from a minidump and symbolicates them. A path to a\n  directory containing debug information files can be specified.\n\n- `object_debug`: Prints basic information about the contents of an object file.\n\n- `sourcemapcache_debug`: Converts a minified JavaScript file and its corresponding SourceMap into\n  a sourcemapcache and resolves given line/col location.\n\n- `symcache_debug`: Converts an object file into a symcache and prints its contents. Optionally,\n  this can be used to symbolicate a relative address.\n\n- `unreal_engine_crash`: Lists files contained within an Unreal Engine 4 crash archive.\n\nTo run these examples, use the `run` script. For example:\n\n```sh\n./run minidump_stackwalk mini.dmp /path/to/files\n```\n\n## Supported Rust Versions\n\nSymbolic tries to not break MSRV compatibility but makes no guarantees about the Rust version.\nAlthough you can expect Rust version compatibility of **at least 6 months**.\n\nThe current MSRV is 1.83.\n\n## License\n\nSymbolic is licensed under the MIT license. It uses some Apache2 licensed code\nfrom Apple for the Swift demangling.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetsentry%2Fsymbolic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetsentry%2Fsymbolic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetsentry%2Fsymbolic/lists"}