Skip to content

Security

symtrace is designed to be safe to run on any repository, including untrusted ones.

  • No network access — it never connects to the internet. Zero HTTP, TCP, or DNS dependencies.
  • No telemetry — no analytics, no tracking, no data collection.
  • No process spawning — it doesn’t shell out to git or any other command. All Git operations happen in-process via libgit2.
  • No unsafe Rust — the unsafe_code = "deny" flag is enforced at compile time.
  • All dependency versions are exactly pinned (=x.y.z) — no surprise updates.
  • A cargo-deny config enforces license checks, advisory scans, and source restrictions.

You can cap how much work symtrace does per file to stay safe on large or adversarial repos:

LimitDefaultFlag
File size5 MiB--max-file-size
AST nodes200,000--max-ast-nodes
Recursion depth2,048--max-recursion-depth
Parse timeout2,000 ms--parse-timeout-ms

Files exceeding any limit are skipped.

See SECURITY.md in the repository for the full audit.